88970


タイトルが分かりにくく申し訳ありません．

同じ長さの集合{1,2,3}, {4,5,6}があったとして，要素が空になるまで両方の集合から非復元抽出するものとします．例えば，次の抽出が考えられます．

例1: (1,4), (2,5), (3,6)  
例2: (1,5), (2,6), (3,4)

考え得る全ての抽出法を列挙するプログラムを書きたいです．  
2つの集合の長さは等しいものとします．


CC BY-SA 4.0
2022-05-21T14:45:04.440
88969
2022-05-21T15:11:02.297
51374
question
python python3
2つの集合から1つずつ非復元抽出するときの抽出方法を列挙したい

[code]

    from itertools import permutations
    from pprint import pprint
    
    a = {1,2,3}
    b = {4,5,6}
    
    result = [[*zip(a, p)] for p in permutations(b)]
    pprint(result)
    
    #
    [[(1, 4), (2, 5), (3, 6)],
     [(1, 4), (2, 6), (3, 5)],
     [(1, 5), (2, 4), (3, 6)],
     [(1, 5), (2, 6), (3, 4)],
     [(1, 6), (2, 4), (3, 5)],
     [(1, 6), (2, 5), (3, 4)]]
    
[/code]


CC BY-SA 4.0
2022-05-21T15:11:02.297
88970
2022-05-21T15:11:02.297
47127
88969
answer