inputArr = [1, 2, 3, 4, 5]
n = len(inputArr)
visited = [False] * n # 각 인덱스를 False로 초기화한다 ( 나중에 방문했다는 의미, True로 바꿀 것이다 )
m = 4 # 뽑고 싶은 수 ( 순서 상관한다 )
def perm(i, arr):
if i == m:
print(arr)
return
for j in range(n):
if not visited[j]: # 방문하지 않으면 배열에 넣고 방문처리하고 재귀 돌려준다, 그리고 원상복귀 해주기
arr.append(inputArr[j])
visited[j] = True
perm(i + 1, arr)
arr.pop()
visited[j] = False
perm(0, [])
inputArr = [1, 2, 3, 4, 5]
n = len(inputArr)
sol = []
r = 3 # 뽑고 싶은 수 ( 순서 상관 안한다 )
def combi(i, arr):
if i == n:
if len(arr) == r:
print(arr)
return
arr.append(inputArr[i])
combi(i + 1, arr) # arr에 넣고 재귀
arr.pop()
combi(i + 1, arr) # arr에 안넣고 재귀
combi(0, [])
print(sol)