Whoops, I meant to call print walk([1,2,3], []) print walk([4,5,6]) and print walk([1,2,3]) print walk([4,5,6]) with def walk(seq, result = []): for item in seq: result.append(item) return result The question is still the same: Why do both calls give different results? Thank you very much for reading, I'm sorry for the inconvenience.