С одномерными массивами все получается, но вот с двумерным:
a = [[1, 2, 3], [4, 5, 6]]
def x(a):
aa = list(a)
aa[0][0] = 123
return aa
print x(a)
print a
[[123, 2, 3], [4, 5, 6]]
[[123, 2, 3], [4, 5, 6]]
[[123, 2, 3], [4, 5, 6]]
[[1, 2, 3], [4, 5, 6]]
Вообще, на Python программирую достаточно давно, но над этой, казалось бы простой проблемой, уже около часа думаю %)