如何嵌套列表长度数量的for循环

问题遇到的现象和发生背景

我有一个list a,此时我知道它的长度是3,于是我要进行3个嵌套的for循环。然而当我不知道a的长度,要通过len(a)求得其长度,并进行该长度数量的嵌套的for循环。该怎么写代码?

a = [1,2,3]
len(a)
forfor:
        for:
我想要达到的结果

嵌套列表长度数量的for循环
我正在做一个路径搜索的算法,每一个低层的for循环都是基于其上层for循环,且for循环的总数量就是列表的长度。

考虑一下用递归实现

def fun(n:list):
    for i in range(n[0]):
        print(i)
        if len(n)>1:
            fun(n[1:])

fun([1,2,3])