조합이란 서로 다른 n개 중에서 r개(n≥r) 취하여 조를 만들 때, 이 하나하나의 조를 n개 중에서 r개 취한 조합이라고 한다.
출처 : [네이버 지식백과] 조합 (두산백과)
조합은 순서를 고려하지 않기 때문에 [A, B, C]의 리스트에서 2개의 원소를 골라 나열하면
[(A, B), (A, C), (B, C)] 가 나오게 된다. 조합은 (A, B)와 (B, A)는 같은 것으로 취급한다.
출처: https://velog.io/@dramatic/Python-permutation-combination-%EC%88%9C%EC%97%B4%EA%B3%BC-%EC%A1%B0%ED%95%A9
itertools.permutations(arr,n)
여기서 arr는 서로 다른 요소가 들어있는 리스트를 의미하며,위의 statement를 실행하면, 이 리스트 중에서 n개의 원소를 골라 묶은 것을 tuple 형태로 반환한다.
>>> import itertools
>>> arr = ['A', 'B', 'C']
>>> nCr = itertools.combinations(arr,2)
>>> print(list(nCr))
[('A', 'B'), ('A', 'C'), ('B', 'C')]
from itertools import combinations하면
함수 사용시 combinations(arr,n)만 해도 됨
(itertools.combinations(arr,n)대신에)
>>> from itertools import combinations
>>> arr = ['a', 'b', 'c']
>>> nCr = list(combinations(arr,2))
>>> nCr
[('a', 'b'), ('a', 'c'), ('b', 'c')]