[self powersetArray:[NSMutableArray arrayWithArray:@[@"1",@"2",@"3",@"4"]] index:0 set:[NSMutableArray array]];- (void)powersetArray:(NSMutableArray *)array index:(NSInteger)index set:(NSMutableArray *)set { NSMutableArray *temp = [NSMutableArray array]; temp = [NSMutableArray arrayWithArray:set]; if (index >= array.count) { NSLog(@"set = %@",set); } else { [self powersetArray:array index:index + 1 set:temp]; // 每次需要set完整的版本 [temp addObject:array[index]]; // 每次将temp数组的部分元素加到temp中 [self powersetArray:array index:index + 1 set:temp]; // //temp成为新的set //如果powerset的是时候一直i+1就等于把set数组一直置空 }}