以下代码用于查找给定列表的所有子集。
def sublist(big_list, selected_so_far):
if big_list == []:
print (selected_so_far)
else:
current = big_list[0]
rest = big_list[1:]
sublist(rest, selected_so_far+[current])
sublist(rest, selected_so_far)
如果输入是“子列表([1,2,3],[])”,它将输出如下:
据我所知,对于第一次递归调用,它在1号打印行结束,但无法弄清楚第二次递归调用是如何打印出所有剩余行的。有人可以解释一下这段代码的流程吗?