Hey guys I am not good with recursion function problems. Can someone tell me a good source to learn about that and also in this problem I do not understand how is the recursion working? It would be great if someone can explain this situation.

```
items = [6, 20, 8, 19, 56, 23, 87, 41, 49, 53]

def find_max(items):
    if len(items) == 1:
        return items[0]

    op1 = items[0]
    # print(op1)
    op2 = find_max(items[1:])
    # print(op1, op2)

    if op1 > op2:
        return op1
    else:
        return op2

print(find_max(items))

```