알고리즘 문제를 풀다가 순열을 구현 할 일이 생겼다.
itertools 라이브러리를 사용하면 손쉽게 구현할 수는 있지만
라이브러리를 사용하지 못할 때를 대비하여 순수하게 python 코드로 구현한 순열 코드를 기록해 두려고 한다.
def combinations(arr, n):
combination = list()
if n == 0:
return [[]]
for idx in range(0, len(arr)):
ele = arr[idx]
rest_arr = arr[idx+1:]
for c in combinations(rest_arr, n-1):
combination.append([ele] + c)
return combination
재귀를 사용하였다.