Заметил, что в оригинальной ветке main-task-1 в mail.py вызывается два раза fibonacci_iter, поправил.
Подключил профайлер (результаты ниже). В целом понятно, что задачу невыгодно решать с помощью рекурсии. Смущает, что для двух способов с итерацией отображает время выполнения 0.000, надеюсь, что вывод "выполняется моментально" правилен.
PROFILER RESULTS
main (c:\Users\marko\Documents\code-tasks-owl\main.py:58)
function called 1 times
18454974 function calls (46 primitive calls) in 5.089 seconds
Ordered by: cumulative time, internal time, call count
PROFILER RESULTS main (c:\Users\marko\Documents\code-tasks-owl\main.py:58) function called 1 times
Ordered by: cumulative time, internal time, call count
ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 5.089 5.089 main.py:58(main) 18454929/1 5.087 0.000 5.087 5.087 main.py:4(fibonacci_rec) 6 0.002 0.000 0.002 0.000 {built-in method builtins.print} 1 0.000 0.000 0.000 0.000 main.py:19(fibonacci_iter) 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 35 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects} 1 0.000 0.000 0.000 0.000 main.py:38(fibonacci) 0 0.000 0.000 profile:0(profiler)