본문 바로가기
  • AI 개발자가 될래요
Python

[Python] 파이썬 조합 순열, itertools combinations, permutations

by 꿀개 2025. 2. 7.

[Python] 파이썬 조합 순열 , itertools combinations, permutations

 

파이썬에서 라이브러리를 사용한다면 조합, 순열을 쉽게 사용할 수 있다.

 

from itertools import combinations, permutations

 

Combinations

Combinations는 순서 상관 없이 입력 문자열로 만들 수 있는 모든 조합을 출력한다.

 

아래 예시를 보자.

문자열 'abcde'와 숫자 3을 입력한 결과 5개의 문자를 순서 상관 없이 3개씩 묶어 만들 수 있는 모든 경우를 출력한다.

 

결과가 맞는지 개수로 확인해보자.

조합 공식은 nCr = n!/r!(n-r)! 이다.

예시의 경우 n=5, r=3 이므로 가능한 조합의 개수는 5!/(3!*2!) = 10 이다.

코드 출력 개수도 10개이므로 개수가 맞는 것을 확인했다.

 

Permutations

Permutations는 순서를 고려하여 입력 문자열로 만들 수 있는 모든 순열을 출력한다.

print(list(permutations('abcde', 3)))

 

출력해보면 아래처럼 5개의 문자를 순서 고려하여 3개씩 묶어 만들 수 있는 모든 경우를 출력한다.

 

동일하게 개수로 확인해보자.

순열 공식은 nPr = n!/(n-r)! 이다.

예시에서 n=5, r=3 이므로 가능한 순열의 개수는 5!/2! = 60 이다.

 

print(len(list(permutations('abcde', 3))))

 

결과의 len을 찍어보면 60이 나오는 것을 볼 수 있다.