Не изменять строки.
Работа с ними в виде списков; превращайте их в строки только при необходимости.
>>> s = list("Hello zorld")
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'z', 'o', 'r', 'l', 'd']
>>> s[6] = 'W'
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>>> "".join(s)
'Hello World'
Строки Python являются неизменными (то есть они не могут быть изменены). Есть много причин для этого. Используйте списки, пока у вас нет выбора, только затем превращайте их в строки.