Skip to content

Instantly share code, notes, and snippets.

@joshmurr
Created November 15, 2013 11:56
Show Gist options
  • Save joshmurr/7483225 to your computer and use it in GitHub Desktop.
Save joshmurr/7483225 to your computer and use it in GitHub Desktop.
A rather concise All Possible Combinations algorithm for Processing.
ArrayList<String> letters;
ArrayList<String> combo;
int n=6;
int k=n;
void go(int offset, int k) {
if (k==0) {
println(combo);
return;
}
for (int i=offset; i<=letters.size()-k; ++i) {
combo.add(letters.get(i));
go(i+1, k-1);
combo.remove(combo.size()-1);
}
}
void setup() {
letters = new ArrayList<String>();
letters.add("a");
letters.add("b");
letters.add("c");
letters.add("d");
letters.add("e");
letters.add("f");
combo = new ArrayList<String>();
for(int i=0; i<=k; i++){
go(0, i);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment