您可以通過使用外循環得到的3子列表所有組合中a
做到這一點,那麼內循環產生的子表的笛卡爾積:
import itertools
a = [[1, 2, 3], ['a', 'b'], [7, 8, 9], ['c', 'd', 'e']]
for groups in itertools.combinations(a, 3):
for t in itertools.product(*groups):
print(t)
輸出
(1, 'a', 7)
(1, 'a', 8)
(1, 'a', 9)
(1, 'b', 7)
(1, 'b', 8)
(1, 'b', 9)
(2, 'a', 7)
(2, 'a', 8)
(2, 'a', 9)
(2, 'b', 7)
(2, 'b', 8)
(2, 'b', 9)
(3, 'a', 7)
(3, 'a', 8)
(3, 'a', 9)
(3, 'b', 7)
(3, 'b', 8)
(3, 'b', 9)
(1, 'a', 'c')
(1, 'a', 'd')
(1, 'a', 'e')
(1, 'b', 'c')
(1, 'b', 'd')
(1, 'b', 'e')
(2, 'a', 'c')
(2, 'a', 'd')
(2, 'a', 'e')
(2, 'b', 'c')
(2, 'b', 'd')
(2, 'b', 'e')
(3, 'a', 'c')
(3, 'a', 'd')
(3, 'a', 'e')
(3, 'b', 'c')
(3, 'b', 'd')
(3, 'b', 'e')
(1, 7, 'c')
(1, 7, 'd')
(1, 7, 'e')
(1, 8, 'c')
(1, 8, 'd')
(1, 8, 'e')
(1, 9, 'c')
(1, 9, 'd')
(1, 9, 'e')
(2, 7, 'c')
(2, 7, 'd')
(2, 7, 'e')
(2, 8, 'c')
(2, 8, 'd')
(2, 8, 'e')
(2, 9, 'c')
(2, 9, 'd')
(2, 9, 'e')
(3, 7, 'c')
(3, 7, 'd')
(3, 7, 'e')
(3, 8, 'c')
(3, 8, 'd')
(3, 8, 'e')
(3, 9, 'c')
(3, 9, 'd')
(3, 9, 'e')
('a', 7, 'c')
('a', 7, 'd')
('a', 7, 'e')
('a', 8, 'c')
('a', 8, 'd')
('a', 8, 'e')
('a', 9, 'c')
('a', 9, 'd')
('a', 9, 'e')
('b', 7, 'c')
('b', 7, 'd')
('b', 7, 'e')
('b', 8, 'c')
('b', 8, 'd')
('b', 8, 'e')
('b', 9, 'c')
('b', 9, 'd')
('b', 9, 'e')
這使我3重複的組合的全長如: [(1, '一個',7, 'C',1, '一個',7, 'C',1, 'A' ,7,'c'),....] – dPdms
它沒有做什麼在提問 –
@dPdms道歉,我會編輯答案 –