无堆栈Python-for循环中的递归?

问题描述

| 我对编程还很陌生,并且已经使用Python几个月了。我正在尝试使概念与Stackless一起使用,但无法弄清楚它是如何工作的(尽管我已经编写了与Stackless一起使用的其他测试脚本)。 作为一个精简的示例,任何人都可以考虑下面的代码,该代码遍历一个列表,并通过递归调用同一函数来查找列表的所有排列(编辑:n维笛卡尔积)。
def traverseList(theList,temp,solutions,level=1):
    if level != len(theList):
        for x in theList:
            temp.append(x)
            traverseList(theList,level+1)
            temp.pop()
    else:
        for x in theList:
            temp.append(x)
            solutions.append(temp[:])
            temp.pop()

myList = [\"a\",None,2,\"gamma\",8] #the list doesn\'t always have just numbers
solutionList = []
tempList = []

traverseList(myList,tempList,solutionList)
print(\"%s... %s\" %(solutionList[0],solutionList[-1]))
产生:
[\'a\',\'a\',\'a\']... [8,8,8]
到目前为止,似乎我在Stackless和递归中找到的唯一示例都具有在函数完成后将信息发送到函数末尾的功能。绝对不要在for循环的中间,如上所述。 我该怎么办?我如何将其转换为可与Tasklet而非递归函数一起运行的脚本? (此版本是我能想到的最好的版本,但是无论如何安排它都会失败。这是许多尝试中的一种,我现在不妨将意大利面扔在墙上。) 额外的e-cookie无需执行bounceBack功能即可实现-我还没有找到一种方法可以让单个tasklet多次将信息传递给自身,而无需一次。 谢谢你的时间!     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)