replace_chars = ['1', '2', '3']
replacer = cycle(replace_chars)
"""""".join([(next(replacer) if c == '@' else c) for c in s])
What's the best way to "periodically" replace characters in a string in Python?