generating all subsets of a set