C# code as below:
递归写的,因为产生了老多string,效率很慢,除去了重复的字符串
public static List<string> OutPutString(string str)
{
List<string> list = new List<string>();
if (str.Length == 1)
{
list.Add(str);
return list;
}
char[] myCharArray = str.ToCharArray();
for (int i = 0; i < str.Length; i++)
{
string str1 = myCharArray[i].ToString();
//Use OutPutString(), remove myCharArray[i] from string
foreach (string str2 in OutPutString(str.Remove(i,1)))
{
//Remove duplicated string
if (!list.Contains(str1 + str2))
{
list.Add(str1 + str2);
}
}
}
return list;
}