#include <iostream>
#include <algorithm>
void print_array(int arr[], int size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << "\n";
}
void findPermutations(int arr[], int size) {
std::sort(arr, arr + size);
do {
print_array(arr, size);
} while (std::next_permutation(arr, arr + size));
}
int main(void)
{
int arr[] = { 1, 2, 3, 4 };
findPermutations(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}
/*
run:
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
*/