title: Recursion function in Python
body: <p>Consider this basic recursion in Python:</p>
  
  <pre><code>def fibonacci(number):
      if number == 0: return 0
      elif number == 1:
          return 1
      else:
          return fibonacci(number-1) + fibonacci(number-2)
  </code></pre>
  
  <p>Which makes sense according to the (n-1) + (n-2) function of the Fibonacci series.</p>
  
  <p>How does Python execute recursion that contains another recursion not within but inside the same code line? Does the 'finobacci(number-1)' complete all the recursion until it reaches '1' and then it does the same with 'fibonacci(number-2)' and add them?</p>
  
  <p>For comparison, the following recursive function for raising a number 'x' into power 'y', I can understand the recursion, def power calling itself until y==0 , since there's only one recursive call in a single line. Still shouldn't all results be '1' since the last command executed is 'return 1' when y==0, therefore x is not returned?</p>
  
  <pre><code>def power(x, y):
      if y == 0:
          return 1
      else:
          return x*power(x, y-1)
  </code></pre>