Как работает этот алгоритм поиска максимального числа?

https://ideone.com/tGdnF6

def max(a):
    if len(a)==2:
        return a[0] if a[0]>a[1] else a[1]
    sub_max=max(a[1:])
    return a[0]if a[0]>sub_max else sub_max
print(max([10,7,5,6]))

Вроде как тут строится "пирамидка" и на 3 шаге программы должна прерываться и выводиться наибольшее число ,
которое находилось на вершине "пирамиды". Но выводится 10 . Программа взята из учебника и она верная , просто я не понимаю последовательность шагов компьютера . введите сюда описание изображения


Ответы (1 шт):

Автор решения: Qwertiy

return выходит не из всех уровней рекурсии, а только из одного. Возвращаемое значение попадает в присваивание в месте вызова и вычисления продолжаются.

А функция ищет максимальное значение в массиве, с чем вполне справляется.

→ Ссылка