subsets iteration version