Python 如何将2 for循环转换为纯递归?

Python 如何将2 for循环转换为纯递归?,python,recursion,Python,Recursion,我想知道我是如何将这段代码转换为只使用纯递归的,所以没有for或while循环和列表理解 def things(list1, list2): stuff = [] for thing1 in list1: for thing2 in list2: if thing2 > thing1: stuff.append((thing1, thing2)) return stuff 我已将基本案例设置为

我想知道我是如何将这段代码转换为只使用纯递归的,所以没有for或while循环和列表理解

def things(list1, list2):
    stuff = []
    for thing1 in list1:
        for thing2 in list2:
            if thing2 > thing1:
                stuff.append((thing1, thing2))
    return stuff
我已将基本案例设置为

def things(list1, list2):
    if not (list1 and list2):
        return []

我知道如何处理for-one循环,但如何管理嵌套for循环?

编写递归函数的第一步是找到退出条件。(当外部for循环结束时,该功能应停止)

尽管对于这类任务,
for/while
循环比递归更有效

def th(arr、列表1、列表2、索引1、索引2):
如果index1==len(列表1):
返回
elif index2==len(列表2):
th(arr,列表1,列表2,索引1+1,0)
其他:
如果列表1[index1]<列表2[index2]:
arr.append((列表1[index1],列表2[index2]))
th(arr、列表1、列表2、索引1、索引2+1)
如果名称=“\uuuuu main\uuuuuuuu”:
l1=[1,3,5]
l2=[2,4]
arr=[]
th(arr,l1,l2,0,0)
打印(arr)
#arr:[(1,2)、(1,4)、(3,4)]

为/添加示例输入和预期输出
循环可以循环成数百万次,但在几十次调用后递归将失败。@lenik-huh?你指的是递归限制吗?因为这大约是1000,但这一点仍然相关