- 조합
def get_comb(arr, n):
comb_list = []
# 종료 조건
if n == 0:
return [[]]
# 현재 arr의 담긴 수를 확인
for i in range(len(arr)):
# 선택된 수
num = arr[i]
# 나머지 수로 구성된 배열
arr_left = arr[i+1:]
for comb in get_comb(arr_left, n - 1):
comb_list.append([num] + comb)
return comb_list
- 순열
def get_perm(arr, n):
perm_list = []
# 종료 조건
if n == 0:
return [[]]
# 현재 arr의 담긴 수를 확인
for i in range(len(arr)):
# 선택된 수
num = arr[i]
# 나머지 수로 구성된 배열
arr_left = arr[:i] + arr[i+1:]
for perm in get_perm(arr_left, n - 1):
perm_list.append([num] + perm)
return perm_list