순서고려O 중복X
import itertools
arr = [1,2,3]
set = itertools.permutations(arr, 3)
print(list(set)) #1
for i in set: #2
print(i)
-------결과---------
#1
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
#2
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
순서고려O 중복O
뽑을 데이터의 수를 repeat 속성을 이용하여 설정해줘야한다.
from itertools import product
arr = [1,2,3]
print(list(product(arr, repeat=3))) #1
set = product(arr, repeat=3) #2
for i in set: #2
print(i)
-------결과---------
#1
[(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3),
(2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3),
(3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)]
#2
from itertools import product
arr = [1,2,3]
set = product(arr, repeat=3)
for i in set: #2
if sum(i) == 4: #loop를 돌 때 조건 확인
print(i)
순서고려X 중복X
import itertools
arr = [1,2,3]
set = itertools.combinations(arr, 3)
print(list(set))
# [(1, 2, 3)]
# (arr, 2) -> [(1, 2), (1, 3), (2, 3)]
순서고려X 중복O
from itertools import combinations_with_replacement
arr = [1,2,3]
print(list(combinations_with_replacement(arr, 3)))
[(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 2), (1, 2, 3), (1, 3, 3),
(2, 2, 2), (2, 2, 3), (2, 3, 3),
(3, 3, 3)]