順列って俺もしらんかったが、とりあえずすべての組み合わせのことを言うのか?

すべてのデータが違うというのを前提として、文字列でやると
private void func()
{
List<string> ret = new List<string>();
junretsu("あいうえお", "", ret);
foreach (string s in ret)
{
Console.WriteLine(s);
}
}
private void junretsu(string str, string junretsustr, List<string> ret)
{
if (str.Length == 1)
ret.Add(junretsustr + str);
else
foreach (char c in str)
{
junretsu(string.Join("", str.Split(c)), junretsustr + c, ret);
}
}
こんな感じのこと?