如何寻找一个字符数组的子集?
例如给定一个字符数组{A,B,C},如何找到所有的子集{A,B,C,AB,AC,BA,BC,CA,CB,ABC,ACB,BAC,BCA,CAB,CBA}?
我用的方法是依次寻找1位,2位,3位的子集。例如寻找2位的字符串时,先随机选取第一位,然后从剩余的两个字母中随机选取一个出来,组成一个两位的字符串(如AB)。由于两位的字符串共六个,把每次随机产生的字符串记下来,与已经存在的做比较,若重复则删除,不重复则保留,直到发现所有的六个两位字符串。三位的产生方法类似。算法由于采用随机产生,找到所有子集要花很长时间。请问有无更好算法?