I am trying to write a module to combine a variable number of lists using itertools.product.
The closest I can get is:
import itertools lists = [["item1","item2"],["A","b","C"], ["etc..."]] searchterms = list(itertools.product(lists)) print searchterms
This doesn’t work, because lists is a single list, so it just returns the original sequence. But I can’t figure out how to pass each element of the lists variable to itertools.
Thanks for any suggestions.
Advertisement
Answer
You need to use *
to separate the single list into its constituent lists:
searchterms = list(itertools.product(*lists))
See the Python Tutorial section on Unpacking Argument Lists.