Estou apenas começando algumas manipulações de string e encontrei esta questão. Eu provavelmente estava tentando fazer algo como o OP, "sempre eu". As respostas anteriores não esclareceram minha confusão, mas depois de pensar um pouco sobre isso, finalmente "entendi".
Enquanto a, b, c, d, e etêm o mesmo valor, eles fazem referência ao mesmo lugar. A memória é salva. Assim que as variáveis passam a ter valores diferentes, elas passam a ter referências diferentes. Minha experiência de aprendizado veio deste código:
import copy
a = 'hello'
b = str(a)
c = a[:]
d = a + ''
e = copy.copy(a)
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
e = a + 'something'
a = 'goodbye'
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
A saída impressa é:
[4538504992, 4538504992, 4538504992, 4538504992, 4538504992]
hello hello hello hello hello
[6113502048, 4538504992, 4538504992, 4538504992, 5570935808]
goodbye hello hello hello hello something