遍历列表的每个可能的n-抽样可以通过递归来实现。下面是一个示例代码,该代码使用递归函数来生成所有可能的n-抽样组合:
def generate_combinations(nums, n):
result = []
current_combination = []
backtrack(nums, n, 0, current_combination, result)
return result
def backtrack(nums, n, start, current_combination, result):
if len(current_combination) == n:
result.append(current_combination[:]) # 添加当前组合到结果列表
return
for i in range(start, len(nums)):
current_combination.append(nums[i]) # 添加当前元素到组合
backtrack(nums, n, i + 1, current_combination, result) # 递归调用下一层
current_combination.pop() # 回溯,移除当前元素
# 示例用法
nums = [1, 2, 3, 4]
n = 2
result = generate_combinations(nums, n)
print(result)
输出:
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
以上代码通过递归的方式生成了给定列表nums的所有可能的n-抽样组合。每次递归调用都从start开始遍历列表,并将当前元素添加到组合中。当组合的长度达到n时,将其添加到结果列表中。通过不断递归调用,并在每次递归结束后进行回溯,可以生成所有可能的n-抽样组合。
上一篇:遍历列表的列表