import copy
def combine(l, n):
answers = []
one = [0] * n
def next_c(li = 0, ni = 0):
if ni == n:
answers.append(copy.copy(one))
return
for k in range(li, len(l)):
one[ni] = l[k]
next_c(k+1, ni+1)
next_c()
return answers
print(combine([1,2,3,4],2))
最近我在网上发现了这个代码。效果很好。但是,我不知道它是如何工作的,所以有人能告诉我它是如何工作的吗?如何快速理解递归代码?非常感谢
正如@AChampion所说,您还可以通过itertools库获得组合,这更容易理解:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐