title: How to read this piece of code step by step?
body: <pre><code>def func(num):
      if num==1:
          return 1
      num=num-1
      print(num)
      z=func(num)*num
      print(num)
      return z
  func(6)
  </code></pre>
  <p>I am a beginner in python study and it's hard for me to read recursive code like this.
  Could you guys introduce the right step of reading this piece of code for me?
  I am also a little puzzled that why the two sets of output are in contrary order.
  Thanks.</p>