Como las variables apuntan a objetos, si asigna una variable a otra, ambas variables se refieren al mismo objeto:

   1: >>> a = [1, 2, 3]

   2: >>> b = a

En este caso, el diagrama de estados sería como este:

Sin título

Como la misma lista tiene dos nombres diferentes, a y b, podemos decir que se le ha puesto un alias. Los cambios hechos a un alias afectan al otro:

   1: >>> b[0] = 5

   2: >>> print a

   3: [5, 2, 3]

Aunque este comportamiento puede ser útil, a veces es inesperado o indeseable.
En general, es mas seguro evitar los alias cuando trabajemos con objetos mutables. Por supuesto, no hay problema con los objetos inmutables. Por ello Python se toma la libertad de poner alias a las cadenas cuando ve una oportunidad de economizar.