from itertools import combinations
def dfs(start):
if M == len(picked):
print (*picked)
return
for i in range(start, N+1):
if i not in picked:
picked.append(i)
dfs(i+1)
picked.pop()
if __name__ == "__main__":
N, M = list(map(int, input().split()))
# method 1. using combinations in litertools library
# array = [i+1 for i in range(N)]
# result = list(combinations(array, M))
# for i in result:
# print (*i)
# method 2. using maual recursion
picked = []
dfs(start=1)
'Computer Science > 백준 알고리즘' 카테고리의 다른 글
[백준] 15652번 N과 M (4) (파이썬) (0) | 2022.06.29 |
---|---|
[백준] 15651번 N과 M (3) (파이썬) (0) | 2022.06.29 |
[백준] 15649번 N과 M (1) (파이썬) (0) | 2022.06.29 |
[백준] 15596번 정수 N개의 합 (C/C++) (0) | 2022.06.29 |
[백준] 15552번 빠른 A+B (C/C++) (0) | 2022.06.29 |