Permutation

Given an array, print all possible permutations.

void Permute(vector<char> &arr)
{
    if (arr.size() == 0)
        return;
 
    PermuteHelper(arr, 0);
}
 
void PermuteHelper(vector<char> &arrint index)
{
    if (index == arr.size() - 1)
    {
        for (char c : arr)
            cout << c;
        cout << endl;
        return;
    }
 
    for (size_t i = index; i < arr.size(); i++)
    {
        swap(arrindex, i);
        PermuteHelper(arrindex + 1);
        swap(arrindex, i);
    }
}
 
void swap(vector<char> &arrint iint j)
{
    char temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}