# 코딩 문제 관련/파이썬

백준 15651번(python)

Hwiyong Jo 2019. 12. 31. 14:31


N, M = map(int, input().split())

num_list = [i + 1 for i in range(N)]
check_list = [False] * N

arr = []

def dfs(cnt):
	# 주어진 만큼 출력한다.
    if(cnt == M):
        print(*arr)
        return
    
    for i in range(0, N):
        if(check_list[i]):
            continue
        arr.append(num_list[i])
        
        dfs(cnt + 1)
        check_list[i] = True
        arr.pop()
        
        for j in range(0, N):
            check_list[j] = False
        
dfs(0)