Method returns variable into its original parameter variable
<p>I am encountering a problem with my program, where a method is saving everything that it does to the parameter variable used in it. </p>

<p>Here's an example: method that moves a list's element to the left by given spaces. </p>

<pre><code>def moveLeft (perm, pos, spaces):
   permTemp = perm
   for n in range(spaces):
      charMoved = permTemp[pos-n]
      permTemp [pos-n] = permTemp[pos-n-1]
      permTemp[pos-n-1] = charMoved
   return permTemp

permO = [0,1,2,3] #original perm  
print moveLeft(permO, -1, 2)
print moveLeft(permO, -1, 2)
print permO
</code></pre>

<p>The expect output would be: the first two to be the same (since it is printing the same returned values of the method) and the last output to be the original list ( [0,1,2,3] ).
Instead I get:</p>

<pre><code>    &gt;&gt;&gt; 
[0, 3, 1, 2]
[0, 2, 3, 1]
[0, 2, 3, 1]
</code></pre>
