Print all Permutations of a string/array code example

Example 1: how to get all permutations of an array

/* to be used something like this:
int [] toBePermuted = new int [] {1, 2, 3, 4};
ArrayList a = heap(toBePermuted);
any mention of int [] can be replaced with any other Array of objects */

ArrayList heap(int [] input) {
  ArrayList ret = new ArrayList ();
  ret = generate(input.length, input, ret);
  return ret;
}

ArrayList generate(int k, int [] a, ArrayList output) {
  if (k == 1) {
    output.add(a.clone());
  } else {
    output = generate(k-1, a, output);
    for (int i=0; i

Example 2: find all permutations of a string

void permute(string a, int l, int r)  
{  
    // Base case  
    if (l == r)  
        cout<

Example 3: how to print all permutations of a string

void permutation(string s)
{
    sort(s.begin(),s.end());
	do{
		cout << s << " ";
	}
    while(next_permutation(s.begin(),s.end()); // std::next_permutation
    
    cout << endl;
}

Example 4: generate all permutations of string

void perm(char a[], int level){

    static int flag[10] = {0};
    static char res[10];
    // If we are the last character of the input string 
    if(a[level] == '\0'){
        // First we assign stopping point to result
        res[level] = '\0';
        // Now we print everything
        for(int i = 0; res[i] != '\0'; ++i){
            printf("%c", res[i]);
        }
        printf("\n");
        ++counter;
    }
    else{
        // Scan the original string and flag to see what letters are available
        for(int i = 0; a[i] != '\0'; ++i){
            if(flag[i] == 0){
                res[level] = a[i];
                flag[i] = 1;
                perm(a, level + 1);
                flag[i] = 0;
            }
        }
    }
}

int main(){
    char first[] = "abc";
    perm(first, 0);
    return 0;
}

Example 5: find all permutations of a string

ABC
ACB
BAC
BCA
CBA
CAB

Tags:

Misc Example