Here is one way to do it:
>>> map(set, itertools.product({1,2}, {3,4}, {6,7,8}))
[set([8, 1, 3]), set([1, 3, 6]), set([1, 3, 7]), set([8, 1, 4]), set([1, 4, 6]), set([1, 4, 7]), set([8, 2, 3]), set([2, 3, 6]), set([2, 3, 7]), set([8, 2, 4]), set([2, 4, 6]), set([2, 4, 7])]
Note that sets are unordered. If you need to preserve ordering, work with lists or tuples:
>>> map(tuple, itertools.product((1,2), (3,4), (6,7,8)))
[(1, 3, 6), (1, 3, 7), (1, 3, 8), (1, 4, 6), (1, 4, 7), (1, 4, 8), (2, 3, 6), (2, 3, 7), (2, 3, 8), (2, 4, 6), (2, 4, 7), (2, 4, 8)]
This readily generalized to a variable number of sets or other collections:
>>> coll = ((1,2), (3,4), (6,7,8))
>>> map(tuple, itertools.product(*coll))
[(1, 3, 6), (1, 3, 7), (1, 3, 8), (1, 4, 6), (1, 4, 7), (1, 4, 8), (2, 3, 6), (2, 3, 7), (2, 3, 8), (2, 4, 6), (2, 4, 7), (2, 4, 8)]