procedure backtracking(c) is
if reject(P, c) then return
if accept(P, c) then output(P, c)
s ← first(P, c)
while s ≠ NULL do
backtracking(s)
s ← next(P, s)
n, m = map(int, input().split())
stack = []
def f():
if len(stack) == m:
print(" ".join(map(str, stack)))
return
for i in range(1, n+1):
if i in stack:
continue
stack.append(i)
f()
stack.pop()
f()
from itertools import permutations
n, m = map(int, input().split())
num = [i for i in range(1, n+1)]
ans = permutations(num, m)
for i in ans:
for j in i:
print(j, end=' ')
print()
๐ง ๋ฐฑ์ค 15650~15652
๐คซsolution_15650
n, m = map(int, input().split())
stack = []
first = 1
def f(first):
if len(stack) == m:
print(" ".join(map(str, stack)))
return
for i in range(first, n+1):
if i in stack:
pass
stack.append(i)
f(i+1)
stack.pop()
f(first)
๐คซsolution_15651
n, m = map(int, input().split())
stack = []
def f():
if len(stack) == m:
print(" ".join(map(str, stack)))
return
for i in range(1, n+1):
stack.append(i)
f()
stack.pop()
f()
๐คซsolution_15652
n, m = map(int, input().split())
stack = []
first = 1
def f(first):
if len(stack) == m:
print(" ".join(map(str, stack)))
return
for i in range(first, n+1):
stack.append(i)
f(i)
stack.pop()
f(first)โ