Python
[Python] 파이썬 조합 순열, itertools combinations, permutations
꿀개
2025. 2. 7. 14:30
[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이 나오는 것을 볼 수 있다.