title: What are the advantages of recursion compared to regular loops?
body: <p>I came across this code in a previous question :</p>
  
  <pre><code>a = 1
  
  def func1():
      if a == 1:
          func2()
  
  def func2():
      if a == 1:
          func3()
  
  def func3():
      func1()
  </code></pre>
  
  <p>Is there ever a time when using recursion like this is more beneficial than a regular loop? If so, when should it be used and what is the convention?</p>