Looking at this from a Math background, it seems that it would be nice for the set type to support multiplication. This would allow for the multiplication of sets to produce Cartesian products giving every single permutation. This would make set usage more intuitive for example;
(assuming python3)

a = set(["amy", "martin"])
b = set(["smith", "jones", "john"])
c = a * b
print(c)

set([('john', 'jones'),
     ('john', 'martin'),
     ('jones', 'john'),
     ('martin', 'amy'),
     ....])

This could be really easily achieved by giving a __mul__ method for sets. Currently trying to multiply sets gives a TypeError. Anyone got any views on this? Or am I barking up the wrong tree and saying something stupid.