728x90

순열(Permutations) - 순서에 따른 경우의 수

from itertools import permutations

data = ['A', 'B', 'C']
a = list(permutations(data, 3))

print(a)
# [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

 

조합(Combinations) - 순서가 없는 경우의 수

from itertools import combinations

data = ['A', 'B', 'C']
a = list(combinations(data, 2))

print(a)
# [('A', 'B'), ('A', 'C'), ('B', 'C')]

 

Product - 같은 요소 중복 허용, 순서가 있는 경우의 수

from itertools import product

data = ['A', 'B', 'C']
a = list(product(data, repeat=2))

print(a)
# [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]

 

Combinations_with_replace - 같은 요소 중복 허용, 순서가 없는 경우의 수

from itertools import combinations_with_replacement

data = ['A', 'B', 'C']
a = list(combinations_with_replacement(data, 2))

print(a)
# [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
728x90

+ Recent posts