Я не собираюсь притворяться, что это самый эффективный способ сделать это, но это простой способ. Он переворачивает все рассматриваемые строки, выполняет обычную замену, используя str.replace
для перевернутых строк, а затем возвращает результат обратно в обратную сторону:
>>> def rreplace(s, old, new, count):
... return (s[::-1].replace(old[::-1], new[::-1], count))[::-1]
...
>>> rreplace('<div><div>Hello</div></div>', '</div>', '</bad>', 1)
'<div><div>Hello</div></bad>'