擅长:python、mysql、java
<p>天真的方法:</p>
<pre><code>#!/usr/bin/env python
import itertools
items = {
'fruits' : ('Orange', 'Apple'),
'toys' : ('GI-Joe', ),
'electronics' : ('VCR', ),
'sporting_goods' : ('Racquet', )
}
def combinate(items, size=3):
if size > len(items):
raise Exception("Lower the `size` or add more products, dude!")
for cats in itertools.combinations(items.keys(), size):
cat_items = [[products for products in items[cat]] for cat in cats]
for x in itertools.product(*cat_items):
yield zip(cats, x)
if __name__ == '__main__':
for x in combinate(items):
print x
</code></pre>
<p>将产生:</p>
^{pr2}$