from itertools import product
combis = []
for i in range(1,5):
for j in product([x for x in range(1,5)], repeat=i):
combis.append(j)
combis 를 루프 돌기
제너레이터화 시키지 못한 예시 코드는 상단과 같습니다.
이터툴스의 모듈들은 제너레이터니까, 그걸 잘 써보려고 했는데, 잘 안된단 말이죠.
결국 원하는 combis는 다음과 같습니다.
[1], [2], [3], ..[1,1], [1,2], [1,3],
...
[1,1,1], [1,1,2], [1,1,3]...[1,1,1,1], [1,1,1,2], ...
메모리를 쓸데없이 많이 먹습니다.
이걸 제너레이터로 쓰려면 어떡하면 될까요?
그러니까
def combi():
for i in range(1,5):
for j in product([x for x in range(1,5)], repeat=i):
yield(j)
이걸 안 만들어 주고, 있는 이터툴스를 이용해서 하는 방법을 찾습니다.