def product(n,new,c):
global arr
answer = []
if len(new) == n:
return [new]
for i in range(c,len(arr)):
answer.extend(product(n,new+[arr[i]],i))
return answer
n,m = map(int,input().split())
arr = list(i for i in range(1,n+1))
visited = [False]*(n)
for p in product(m,[],0):
print(*p, sep=' ')
풀이
product는 permutations에서 중복을 허용한건데, 이번에는 오른쪽에 왼쪽 원소보다 큰 원소가 와야하는 조건이 추가됐다.