using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test
{
class Program
{
static void Main(string[] args)
{
char[] c = { 'A', 'B', 'C', 'D' };
quanpailie<char> q = new quanpailie<char>();
q.perm(c, 0, 3);
}
}
public class quanpailie<T>
{
public void swap(ref T X, ref T Y)
{
T tmp;
tmp = X;
X = Y;
Y = tmp;
}
public void perm(T[] list, int k, int m)
{
int i;
if (k > m)
{
for (i = 0; i <= m; i++)
Console.Write(list[i]);
Console.Write("/n");
}
else
{
for (i = k; i <= m; i++)
{
swap(ref list[k], ref list[i]);
perm(list, k + 1, m);
swap(ref list[k], ref list[i]);
}
}
}
}
}