вы можете использовать str.replace
:
s = "(2*(-2 + d)*m1^2*j[MI, 0, 1] + 2*(-3 + d)*m1^2*j[MI, 1, 1]*(m1^2 - m2 - SPD[p1, p1]) - (-2 + d) * j[MI, 1, 0]*(m1^2 + m2 - SPD[p1, p1]))\/(2*m1^2*((m1^2 - m2)^2 - 2*(m1^2 + m2)*SPD[p1, p1] + SPD[p1, p1]^2))"
s.replace('p1', 'p10')
или использовать регулярное выражение:
import re
re.sub('p1', 'p10', s)
output:
'(2*(-2 + d)*m1^2*j[MI, 0, 1] + 2*(-3 + d)*m1^2*j[MI, 1, 1]*(m1^2 - m2 - SPD[p10, p10]) - (-2 + d) * j[MI, 1, 0]*(m1^2 + m2 - SPD[p10, p10]))\\/(2*m1^2*((m1^2 - m2)^2 - 2*(m1^2 + m2)*SPD[p10, p10] + SPD[p10, p10]^2))'