yegle added the comment:
Found another example that shows horrible performance when using
itertools.product:
def gen():
l = [itertools.permutations(range(10)) for _ in range(10)]
g = itertools.product(*l)
for i in g:
yield i
A simple next() to this generator takes 16 seconds on my desktop.
I use this recursive product() instead and the performance is acceptable:
def product(*args):
if len(args) == 1:
for i in args[0]:
yield [i]
else:
for i in args[0]:
for j in product(*args[1:]):
j.append(i)
yield j
----------
nosy: +yegle
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue10109>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com