출처 | https://www.acmicpc.net/problem/15652
N,M = map(int,input().split())
rs = []
def recursive(num):
if len(rs) == M:
print(' '.join(map(str,rs)))
return
for i in range(num,N+1):
rs.append(i)
recursive(i)
rs.pop()
recursive(1)
현재 i를 포함하는 경우를 고려한다.
rs 리스트에 i를 추가한 후, 재귀적으로 다음 원소를 선택하는 것을 진행한다.
이후에 rs에서 i를 제거하고 다음 원소로 넘어간다.
현재 i를 포함하지 않는 경우를 고려한다.
rs 리스트에 i를 추가하지 않고, 바로 다음 원소로 넘어 간다.