generate all subsets of a set 2^N subsets