두 개의 튜플 사이에서 가능한 모든 쌍 조합(pair combination)을 구해야 할 때는 리스트 컴프리헨션(list comprehension)과 함께 itertools 모듈의 product() 함수를 활용하면 간단하게 해결할 수 있습니다.
product() 함수는 여러 집합의 데카르트 곱(Cartesian product)을 계산해 주는 도구로, 반복 가능한 객체들의 모든 조합을 순서대로 생성합니다.
아래는 실제 구현 예시입니다.
예제 코드
from itertools import product
N = 2
print("N의 값이 초기화되었습니다:")
print(N)
my_result = [ele for ele in product(range(1, N + 1), repeat = N)]
print("2까지의 모든 튜플 조합은 다음과 같습니다:")
print(my_result)
출력 결과
N의 값이 초기화되었습니다:
2
2까지의 모든 튜플 조합은 다음과 같습니다:
[(1, 1), (1, 2), (2, 1), (2, 2)]
코드 설명
itertools모듈에서product함수를 임포트합니다.N 값을 설정한 뒤, 콘솔에 출력하여 확인합니다.
리스트 컴프리헨션을 사용해 1부터 N까지의 값 범위를 순회하며,
repeat = N옵션을 통해 N개 원소로 이루어진 모든 조합을 생성합니다.생성된 결과는 변수
my_result에 저장됩니다.최종 결과를 콘솔 화면에 출력합니다.
참고 사항
repeat 매개변수의 값을 변경하면 조합의 길이를 자유롭게 조절할 수 있습니다. 예를 들어 N이 3이면 (1,1,1)부터 (3,3,3)까지 총 27개의 조합이 생성됩니다. 이 방식은 중복 허용 순열(permutation with repetition)을 구하는 것과 동일한 효과를 가지므로, 알고리즘 문제 풀이나 데이터 조합 작업에 유용하게 활용될 수 있습니다.