def combinations(n, r, combination=[]):
if len(combination) == r:
print(' '.join(map(str, combination)))
return
start = 1 if not combination else combination[-1] + 1
for i in range(start, n+1):
combinations(n, r, combination + [i])
def main():
n = 5 # 自然数范围
r = 3 # 取出的数字个数
combinations(n, r)
if __name__ == "__main__":
main()
以上代码使用递归算法找出指定数量的自然数组合。在每一层递归中,我们从当前位置开始选择一个数字,并递归调用下一层,在下一层中选择更大的数字。当组合列表长度等于所需数量 r 时,输出该组合。通过不断迭代和回溯,我们可以找到所有可能的组合。
内容由零声教学AI助手提供,问题来源于学员提问




