how recursion works in python code example

Example 1: recursion in python

def yourFunction(arg):
    #you can't just recurse over and over, 
    #you have to have an ending condition
    if arg == 0:
        yourFunction(arg - 1)
        
    return arg

Example 2: recursion in python

houses = ["Eric's house", "Kenny's house", "Kyle's house", "Stan's house"]

# Each function call represents an elf doing his work 
def deliver_presents_recursively(houses):
    # Worker elf doing his work
    if len(houses) == 1:
        house = houses[0]
        print("Delivering presents to", house)

    # Manager elf doing his work
    else:
        mid = len(houses) // 2
        first_half = houses[:mid]
        second_half = houses[mid:]

        # Divides his work among two elves
        deliver_presents_recursively(first_half)
        deliver_presents_recursively(second_half)