중복조합을 이용하는 문제였다.
from itertools import combinations_with_replacement
N, M = map(int, input().split())
arr = [i for i in range(1, N+1)]
for i in combinations_with_replacement(arr, M):
print(*i)
import sys
input = sys.stdin.readline
N, M = map(int, input().strip().split())
li = []
def recursive(start):
if len(li) == M:
print(" ".join(map(str, li)))
return 0
else:
for i in range(start, N+1):
li.append(i)
recursive(i)
li.pop()
recursive(1)