subset generation