title: recursion stack misleading output
body: <p>I have some confusion in recursion. I am not understanding that how the print is working</p>
  
  <pre class="lang-py prettyprint-override"><code>def gcd(a, b):
      # Everything divides 0
      print (a, b)
      if (b == 0):
          print ("I am here")
          return a
      return gcd(b, a % b)
  
  
  # Driver program to test above function
  a = 13
  b = 24
  if (gcd(a, b)):
      print('GCD of', a, 'and', b, 'is', gcd(a, b))
  else:
      print('not found')
  </code></pre>
  
  <p>13 24</p>
  
  <p>24 13</p>
  
  <p>13 11</p>
  
  <p>11 2</p>
  
  <p>2 1</p>
  
  <p>1 0</p>
  
  <p>I am here</p>
  
  <p>13 24 #----- Need to know from here how the printing is working, how it is 13 and 24 ? how the stack is keeping 13, 24 at this point ?</p>
  
  <p>24 13</p>
  
  <p>13 11</p>
  
  <p>11 2</p>
  
  <p>2 1</p>
  
  <p>1 0</p>
  
  <p>I am here</p>
  
  <p>GCD of 13 and 24 is 1</p>