I need to get all the combination of an array. From the shortest combo (1 letter) to the longest combinations (|number of letters|) without duplication
For example:
ArrayList<String> array = new ArrayList<String>();
array.add("a");
array.add("d");
array.add("e");
IterationWithoutDuplication(array);
public void IterationWithoutDuplication(array){
//some kind of a loop/recursion
printCurrentCombo();
//do some other work on the specific combo
}
Output should be:
a
d
e
ad
ae
da
de
ea
ed
ade
aed
dae
dea
ead
eda
Notice how it goes first on:
- 1 letter combinations; then
- 2 letters combinations; then
- 3 letters combinations; then
- ..
|array size|
letters combinations
But all the combinations are unique and doesnt contain the same letter more then once.
Of course I dont wish just to print it, but rather do some work - the question is how to scan an array this way efficient.