def repl(texto, letra1, letra2):
if(texto.find(letra1) == -1): return texto
texto = texto[:texto.find(letra1)] + letra2 + texto[texto.find(letra1)+1:]
return repl(texto, letra1, letra)
Eu tentei no primeiro caso texto.find(letra1)+1 e no segundo texto.find(letra1) quando tentei fazer isso pela primeira vez. Mas faz até mais sentido que seja assim.
Debate sobre isso(Está em inglês):
https://groups.google.com/forum/#!topic/comp.lang.python/lHhm7CFRJAU
E neste mesmo link tem esse texto sobre index(Também em inglês):
http://www.everything2.com/index.pl?node_id=1409551
Acredito que não tenha dificuldade com o inglês, mas caso tenha e tenha interesse em ler ambos links eu posso traduzir mais tarde.