回答編集履歴

2

追記

2017/12/08 10:31

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -64,6 +64,8 @@
64
64
 
65
65
  print(a_set)
66
66
 
67
+ ```
67
68
 
68
69
 
70
+
69
- ```
71
+ なお、結果が一意でなくてよいのなら、random.sampleを用いてもいいでしょう。

1

追記

2017/12/08 10:30

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -13,3 +13,57 @@
13
13
  ただ、そのネストの多さではまともな処理速度が期待できないので、
14
14
 
15
15
  **設計自体を見直すことを強くお勧めします。**
16
+
17
+
18
+
19
+ 追記
20
+
21
+ ---
22
+
23
+ 参考までに、(おそらく)要件を満たす組み合わせを出力するコードです。
24
+
25
+ 各要素の役割がわからないので、マジックナンバーが多いのはご容赦ください。
26
+
27
+ ```Python
28
+
29
+ import random
30
+
31
+ import itertools
32
+
33
+
34
+
35
+ def flatten(dim_2):
36
+
37
+ return [elem for row in a_set for elem in row]
38
+
39
+
40
+
41
+ # 適当にそれっぽいデータを作る
42
+
43
+ hoge = [
44
+
45
+ [random.randint(0, 1000) for _ in range(4)]
46
+
47
+ for _ in range(250)
48
+
49
+ ]
50
+
51
+
52
+
53
+ for a_set in itertools.combinations(hoge, 9):
54
+
55
+ a_set = set(flatten(a_set))
56
+
57
+
58
+
59
+ if len(a_set) != 9 * 4:
60
+
61
+ continue
62
+
63
+
64
+
65
+ print(a_set)
66
+
67
+
68
+
69
+ ```