#include <iostream> using namespace std; template <typename T> void Perm(T a[], int k, int m) { if(k==m) { for(int i=0; i<=m; i++) cout<<a[i]; cout<<endl; } else { for(int i=k; i<=m; i++) { swap(a[k], a[i]); Perm(a, k+1, m); swap(a[k], a[i]); } } } void main() { int a[]={1,2,3,4,5}; char b[]="abcde"; Perm(b, 0, 4); }