combinations function

all possible combinations of n sets