Python3で質問です。
f(0)=1, f(1)=1, f(n)=f(n-1)+f(n-2), n>1と言う条件でnが1から20までの再帰を行いたいのですが

def f(n):
    if n == 0 or n == 1:
        return 1
    else:
        return f(n-1)+f(n-2)
def main():
    for i in range(11):
        print(f(i))
main()

帰ってくる値は
1
1
2
3
5
8
13
21
34
55
89

もともとのコードはこうなのですが、これをreturn時にlistに入れてreturnしたいのですがうまくいきません

def f(n):
    L = []
    ans = []
    if n == 0 or n == 1:
        ans = 1
        L.append(ans)
        return L
    else:
        ans = f(n-1)+f(n-2)
        L.append(ans)
        return L
def main():
    for i in range(11):
        print(f(i))
main()

このように書くと上のような値が帰ってきません。

どのようにすればlistに入れてreturnさせてもうまくいきますか?
お知恵を貸してください