if len(sc)==r:
goal.append(sc[:])
sc.pop()
else:
for i in range(start,len(li)):
sc.append(li[i])
print(sc)
recurse(i+1)
sc.pop()
return
아 여기서 이렇게 하면 sc pop해서
inn=list(map(int,input().split()))
n=inn[0]
r=inn[1]
#nCr 조합
li=[i for i in range(1,n+1)] #임의로 만든
goal=[] #결과 저장
sc=[] #계산공간
def recurse(start=0):
global n,r
if len(sc)==r:
goal.append(sc[:])
sc.pop()
else:
for i in range(start,len(li)):
sc.append(li[i])
recurse(i+1)
if len(sc): #12'5'까지 했으면
sc.pop()
return
recurse()
print(goal)


여기다가도 넣어줘야 된다
안 하면 계속 123 124 125 123 124 125..122..이렇게 됨
지정된 좌석.이 있는 거 아니면 pop 열심히 해줘야되네 ㅅㅂ 어려워라
sc[i]=어쩌구 이렇게 저장
def combination(arr, r):
# 1.
arr = sorted(arr)
used = [0 for _ in range(len(arr))]
# 2.
def generate(chosen):
if len(chosen) == r:
print(chosen)
return
# 3.
start = arr.index(chosen[-1]) + 1 if chosen else 0
for nxt in range(start, len(arr)):
if used[nxt] == 0 and (nxt == 0 or arr[nxt-1] != arr[nxt] or used[nxt-1]):
chosen.append(arr[nxt])
used[nxt] = 1
generate(chosen)
chosen.pop()
used[nxt] = 0
generate([])
출처: https://shoark7.github.io/programming/algorithm/Permutations-and-Combinations
아 recurse 하고 그 다음에 pop하면 되겠....하 시발 몰라
https://www.acmicpc.net/problem/1759
이거 아님? 조합
아니 그래도 골5이네 근데 순열은 실3이었으면서