Python 재귀함수로 순열 구현하기

Python으로 재귀함수를 이용해서 n개 원소의 순열을 구해보자.
itertools 라이브러리의 permutations 함수를 쓸 수도 있지만,
재귀함수만으로도 구현할 수 있다.

소스코드

def recur(lst):
  if len(lst) == n:
    print(lst)
  else:
    for i in range(1, n+1):
      if visit[i-1] == 0:
        visit[i-1] = 1
        lst.append(i)
        recur(lst)
        lst.pop()
        visit[i-1] = 0
  return

n = int(input())
ans = []
visit = [0, 0, 0, 0] # 원소 중복 방지
recur(ans)

실행결과

output

Categories:

Updated:

Leave a comment