我无法创建列表中元素的组合。使用递归创建列表组合
我想要做的是在Python中创建一个递归函数,它返回例如列表a = [1,2,3,4,5,6,7,8]
的元素组合,结果将是组合[1,2,3,4],[1,3,4 ,5],[1,4,5,6],[1,2,4,5]等等。对于8个元素,它应该返回70个组合(如果我做了我的数学)。虽然最好的选择是组合不重复。
我试图代码,但我所得到的仅仅是[1,2,3,4],[1,3,4,5] etc
但不是组合[1,5,7,8]
我知道有一个特殊的功能,但我想递归地做到这一点。有什么建议么?
nimed = ["A","B","C","D","E","F","G","H"]
def kombinatsioonid(listike,popitav):
if len(listike) < 4:
return
tyhi = []
for c in range(len(listike)):
tyhi.append(listike[c])
listike.pop(popitav)
print(tyhi)
kombinatsioonid(listike,popitav)
kombinatsioonid(nimed,1)
Waht是你的输出和你想要的输出之间的差异 – 2014-10-01 08:00:28
好吧,例如,我没有得到[A,E,G,H]或类似[1,5,7,8] – charen 2014-10-01 08:03:04
使用[itertools.permutations()](https://docs.python.org/2/library/itertools.html#itertools.permutations)不是更好吗? – 2014-10-01 08:04:42