Olá!
Vale a pena lembrar qual era o código mesmo, afinal não fizemos nada no computador hoje... eu mesmo nem anotei o que estava na lousa. Achava que era algo +/- assim:
resultado = ""
i = 0
for c in str2:
while i<len(str1) and str1[i]!=c:
resultado += str1[i]
i += 1
if i<len(str1):
resultado += coringa
i += 1
nesse caso, o if serviria para nos certificarmos de que o caractere c foi encontrado antes da string 1 acabar; mas como você disse que a condição do if era str1[i]==c, então nesse caso você está certo, vai dar um erro de indexação pois não estaríamos checando se i<len(str1); uma possível solução seria corrigir o if para o formato acima. Assim, quando a string 1 acabar (i==len(str1)), o laço externo vai apenas terminar de "consumir" os caracteres da string 2 (dava pra usar um break também).
Se alguém tiver anotado as duas soluções que eu escrevi na lousa e puder compartilhar aqui no fórum, agradeço!
SÓ QUE não era esse o erro que eu estava pensando quando propus que vocês diagnosticassem essa segunda solução... ou seja, o código tinha mais de um erro, e ainda não funciona!! 
Mais papites?
Abraços,
Marcelo