Link: https://www.acmicpc.net/problem/15663
N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.
import sys
si = sys.stdin.readline
n,m = list(map(int,si().split()))
numbers = sorted(list(map(int,si().split())))
selected = [[] for _ in range(m)]
used = [False for _ in range(len(numbers))]
def rec(k):
if k == m:
temp = ''
for x in selected:
temp += str(x) + " "
print(temp)
else:
lastCand = 0
for i in range(n):
if used[i] == False and numbers[i]!=lastCand:
selected[k] = numbers[i]
lastCand = numbers[i]
used[i] = True
rec(k+1)
used[i] = False
selected[k] = 0
rec(0)