import itertools
pool = ['A', 'B', 'C']
print(list(map(''.join, itertools.permutations(pool))))
# 결과 : ['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA']
import itertools
pool = ['A', 'B', 'C']
print(list(map(''.join, itertools.combinations(pool, 2))))
# 결과 : ['AB', 'AC', 'BC']
import itertools
pool = ['A', 'B', 'C']
print(list(map(''.join, itertools.product(pool, repeat=2))))
# 결과 : ['AA', 'AB', 'AC', 'BA', 'BB', 'BC', 'CA', 'CB', 'CC']
import itertools
pool = ['A', 'B', 'C']
print(list(map(''.join, itertools.combinations_with_replacement(pool, 2))))
# 결과 : ['AA', 'AB', 'AC', 'BB', 'BC', 'CC']
pool의 자료형으로는 리스트, 튜플, 딕셔너리, 문자열이 올 수 있다.