import string
"abaababb".translate(string.maketrans("ab", "ba"))
# result: 'babbabaa'
Обратите внимание, что это работает только для односимвольных подстановок.
Для более длинных подстрок или подстановок это немного сложно, но может работать:
import re
def replace_all(repls, str):
# return re.sub('|'.join(repls.keys()), lambda k: repls[k.group(0)], str)
return re.sub('|'.join(re.escape(key) for key in repls.keys()),
lambda k: repls[k.group(0)], str)
text = "i like apples, but pears scare me"
print replace_all({"apple": "pear", "pear": "apple"}, text)
К сожалению это не будет работать, если вы включите какие-либо специальные символы регулярных выражений вы не можете использовать регулярные выражения таким образом: (
(Спасибо @TimPietzcker)