def combrecur(n, r, combination=[]):
# 递归终止条件:已经选择了 r 个数
if len(combination) == r:
print(' '.join(map(str, combination)))
return
# 递归遍历从 n 到 1 的数,进行组合选择
for i in range(n, 0, -1):
combrecur(i - 1, r, combination + [i])
def main():
n = 5 # 自然数范围
r = 3 # 取出的数字个数
combrecur(n, r)
if __name__ == "__main__":
main()
以上代码使用递归算法找出指定数量的自然数组合。在每一层递归中,我们从当前的 n 开始,将其加入组合列表中,并递归调用下一层,在下一层中选择更小的数字。当组合列表长度等于所需数量 r 时,输出该组合。不断地迭代和回溯,直到遍历完所有可能的组合。
内容由零声教学AI助手提供,问题来源于学员提问




