teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

別解追加

2017/12/08 10:26

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -13,4 +13,25 @@
13
13
 
14
14
  for i, j in product(range(10), range(5)):
15
15
  print(i, j)
16
- ```
16
+ ```
17
+
18
+ # productがなくても出来ること
19
+ ```python
20
+ def gen_bb_to_bj(z)
21
+ for bb in range(0,z-1):
22
+ for bc in range(bb+1,z):
23
+ for bd in range(bc+1,z):
24
+ for be in range(bd+1,z):
25
+ for bf in range(be+1,z):
26
+ for bg in range(bf+1,z):
27
+ for bh in range(bg+1,z):
28
+ for bi in range(bh+1,z):
29
+ for bj in range(bi+1,z):
30
+ yield bb, bc, bd, be, bf, bg, bh, bi, bj
31
+
32
+ for bb_to_bj in gen_bb_to_bj(10):
33
+ pass # なんかの処理
34
+ ```
35
+
36
+ # 多分もっとフラットに書けるはず
37
+ 組み合わせを元にループしようとしているように見えるので`itertools`を使えばもうちょっと見通しよく書けると思うのですが、いかんせんfor文の連鎖でどんな組み合わせをループしようとしているのか分からなかったので、ここまでです。