a = b = ['a', 'b'] 
b = ['x', 'y'] # reassigns the name b
print a # still the original list
a = b = ['a', 'b']
b[:] = ['x', 'y'] # changes the existing list bound to a 
print a # a changed too 
How come a is linked to b? What kind of mechanism does python use to handle chained assignments of mutable data types?
