Sử dụng itertools.product để tạo tích Descartes của các phần tử từ 1 đến N, lặp lại N lần.
Ví dụ
from itertools import product
N = 2
print("N =", N)
result = [ele for ele in product(range(1, N + 1), repeat=N)]
print("Tất cả tổ hợp tuple độ dài", N, "từ 1..", N, ":")
print(result)
Kết quả
N = 2 Tất cả tổ hợp tuple độ dài 2 từ 1.. 2 : [(1, 1), (1, 2), (2, 1), (2, 2)]
Giải thích
product(range(1, N+1), repeat=N)tạo ra tất cả các tuple độ dài N với phần tử từ 1 đến N.- List comprehension chuyển iterator thành list.
- Với N=2: (1,1), (1,2), (2,1), (2,2).
- Đây là hoán vị có lặp lại (Cartesian product).