0
点赞
收藏
分享

微信扫一扫

python:实现all combinations所有组合算法(附完整源码)

hoohack 2022-07-27 阅读 63


python:实现all combinations所有组合算法

from __future__ import annotations


def generate_all_combinations(n: int, k: int) -> list[list[int]]:
"""
>>> generate_all_combinations(n=4, k=2)
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
"""

result: list[list[int]] = []
create_all_state(1, n, k, [], result)
return result


def create_all_state(
increment: int,
total_number: int,
level: int,
current_list: list[int],
total_list: list[list[int]],
) -> None:
if level == 0:
total_list.append(current_list[:])
return

for i in range(increment, total_number - level + 2):
current_list.append(i)
create_all_state(i + 1, total_number, level - 1, current_list, total_list)
current_list.pop()


def print_all_state(total_list: list[list[int]]) -> None:
for i in total_list:
print(*i)


if __name__ == "__main__":
n = 4
k = 2
total_list = generate_all_combinations(n, k)
print_all_state(total_list)


举报

相关推荐

0 条评论