순열(Permutation) 생성
- 서로 다른 것들 중 몇 개를 뽑아서 한 줄로 나열하는 것
- 서로 다른 n개 중 r개를 택하는 순열은 아래와 같이 표현
nPr=n∗(n−1)∗(n−1)∗…∗2∗1
- nPn = n!이라고 표기하며, Factorial이라고 부름
n!=n∗(n−1)∗(n−1)∗…∗2∗1
- {1, 2, 3}을 포함하는 모든 순열을 생성하는 함수
for i1 in range(1, 4):
for i2 in range(1, 4):
if i2 != i1:
for i3 in range(1, 4):
if i3 != i1 and i3 != i2:
print(i1, i2, i3)
재귀 호출을 통한 순열 생성
- 숫자 1~3로 나타낼 수 있는 모든 순열 출력
number = [1,2,3]
p = [0]*3
used = [0]*3
def perm(level):
if level == 3:
print(*p)
return
for i in range(3):
if used[i]==False:
p[level]=number[i]
used[i]=True
perm(level+1)
used[i]=False
perm(0)