index(i)
здесь всегда равно нулю, поскольку функция индекса находит индекс первого вхождения, ie, здесь его ноль. Таким образом, индекс никогда не равен 2, а строка одинакова.
Итак, для этого воспользуемся функцией соединения:
''.join(e[i] if i!=2 else 'P' for i in range(len(e)))
дает:
'**P**'
Или как @furas говорит, ломтик:
e[:2] + 'P' + e[3:]