代码替你粘过来 using System; using System.Collections.Generic; using System.Linq;namespace ConsoleApplication1 { class Program { static void Main(string[] args) { 排列组合("ABC", 0, 3).ToList().ForEach(x => { Console.WriteLine(x); }); Console.ReadKey(); } private static IEnumerable<string> 排列组合(string source, int fr, int len) { if (len == 1) return new List<string> { source.Substring(fr, 1) }; else return from sub in 排列组合(source, fr + 1, len - 1) from i in Enumerable.Range(0, sub.Length + 1) let first = source.Substring(fr, 1) select sub.Insert(i, first); } } }
http://topic.csdn.net/u/20120407/20/197e6e0b-1f24-4537-a8e7-00feeae85a52.html?66150
using System;
using System.Collections.Generic;
using System.Linq;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
排列组合("ABC", 0, 3).ToList().ForEach(x => { Console.WriteLine(x); });
Console.ReadKey();
} private static IEnumerable<string> 排列组合(string source, int fr, int len)
{
if (len == 1)
return new List<string> { source.Substring(fr, 1) };
else
return from sub in 排列组合(source, fr + 1, len - 1)
from i in Enumerable.Range(0, sub.Length + 1)
let first = source.Substring(fr, 1)
select sub.Insert(i, first);
}
}
}