## Introduction to Programming using Python 1st Edition

If recursion does not reduce the problem in a manner that allows it to eventually converge into the base case, infinite recursion can occur. For example, suppose you mistakenly write the factorial function as follows: def : return n * The function runs infinitely and causes a RuntimeError. The example discussed so far shows a recursive function that invokes itself. This is known as $direct$ $recursion$. It is also possible to create $indirect$ $recursion$. This occurs when function A invokes function B, which in turn invokes function A. There can even be several more functions involved in the recursion. For example, function A invokes function B, which invokes function C, which invokes function A.