回答編集履歴

3

追記

2019/10/26 10:54

投稿

quickquip
quickquip

スコア11044

test CHANGED
@@ -123,3 +123,73 @@
123
123
  )
124
124
 
125
125
  ```
126
+
127
+
128
+
129
+ ----
130
+
131
+
132
+
133
+ そういうケースがありうるならどちらかというと
134
+
135
+ ```python
136
+
137
+ from itertools import product
138
+
139
+
140
+
141
+ A = ('a', 'b', 'c')
142
+
143
+ B = ('a', 'b', 'c','d','e')
144
+
145
+ C = ('d', 'e')
146
+
147
+
148
+
149
+ [q for q in product(A, B, C) if len(q) == len(set(q))]
150
+
151
+ ```
152
+
153
+ と解決するべきではないでしょうか。
154
+
155
+
156
+
157
+ ```
158
+
159
+ [('a', 'b', 'd'),
160
+
161
+ ('a', 'b', 'e'),
162
+
163
+ ('a', 'c', 'd'),
164
+
165
+ ('a', 'c', 'e'),
166
+
167
+ ('a', 'd', 'e'),
168
+
169
+ ('a', 'e', 'd'),
170
+
171
+ ('b', 'a', 'd'),
172
+
173
+ ('b', 'a', 'e'),
174
+
175
+ ('b', 'c', 'd'),
176
+
177
+ ('b', 'c', 'e'),
178
+
179
+ ('b', 'd', 'e'),
180
+
181
+ ('b', 'e', 'd'),
182
+
183
+ ('c', 'a', 'd'),
184
+
185
+ ('c', 'a', 'e'),
186
+
187
+ ('c', 'b', 'd'),
188
+
189
+ ('c', 'b', 'e'),
190
+
191
+ ('c', 'd', 'e'),
192
+
193
+ ('c', 'e', 'd')]
194
+
195
+ ```

2

些細

2019/10/26 10:54

投稿

quickquip
quickquip

スコア11044

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  ----
82
82
 
83
- 以下あまりにも読めにくいので回答として取り消します
83
+ 以下あまりにも読めにくいので回答として取り消します
84
84
 
85
85
 
86
86
 

1

追記

2019/10/26 02:16

投稿

quickquip
quickquip

スコア11044

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  ```python
48
48
 
49
- [x + y for x, y in product(permutations('abc', 2), permutations('de', 1))]
49
+ [x + y for x, y in product(permutations('abc', 2), permutations('de', 1))]
50
50
 
51
51
  ```
52
52
 
@@ -57,6 +57,32 @@
57
57
 
58
58
 
59
59
  連結を増やせるように `for x, y`を排除すると
60
+
61
+
62
+
63
+ ```python
64
+
65
+ from itertools import chain, permutations, product
66
+
67
+ [tuple(chain.from_iterable(q)) for q in product(permutations('abc', 2), permutations('de', 1))]
68
+
69
+ ```
70
+
71
+
72
+
73
+
74
+
75
+ (`('a', 'b', 'c')`は`'abc'`に省略してます)
76
+
77
+
78
+
79
+
80
+
81
+ ----
82
+
83
+ 以下あまりにも読めにくいので回答として取り消します
84
+
85
+
60
86
 
61
87
  ```python
62
88
 
@@ -97,9 +123,3 @@
97
123
  )
98
124
 
99
125
  ```
100
-
101
-
102
-
103
-
104
-
105
- (`('a', 'b', 'c')`は`'abc'`に省略してます)