[Java版]
static List<String> fullCombination(String[] elems) {
List<String> fullElements = new ArrayList<>();
for (String currentElem : elems) {
ListIterator<String> iter = fullElements.listIterator();
while (iter.hasNext()) {
iter.add(iter.next() + currentElem);
}
iter.add(currentElem);
}
return fullElements;
}
public static void main(String[] args) {
String[] elems = {"A", "B", "C", "D"};
List<String> results = fullCombination(elems);
System.out.println(results + "\t total elems: " + results.size());
}
[Python版]
import itertools
elems = ['a', 'b', 'c', 'd']
full_combination = []
for num in range(1, len(elems)+1):
for subset in itertools.combinations(elems, num):
full_combination.append("".join(subset))
print(full_combination)
【 在 iStudy 的大作中提到: 】
: a,b,c,d四个对象
: 我要生成a,b,c,d的全组合===C(4,1)+C(4,2)+C(4,3)+C(4,4)
: 结果就是输出 {a,b,c,d, ab,ac,ad,bc,bd,cd,abc,abd,acd,bcd,abcd}
: ...................
--
FROM 135.0.251.*