使用 C# 或 F# 查找包括单个字符的字符串排列

Fay*_*yde 2 .net c# f#

我想生成一个包含可变字符列表的字符串的所有可能排列的列表。例如,如果我有字符串“ABC”,我想要一个包含所有可能变体的列表,例如:A、B、C、AB、BC。

谢谢你。

Dan*_*iel 5

很难确切地说出您想要什么,但是根据您的示例输出,这里是我认为您在 F# 中追求的方法。

let combinations (s:string) =
  let rec loop acc i =
    seq {
      for i in i .. (s.Length - 1) do
        let acc = acc + s.[i..i]
        yield acc
        yield! loop acc (i + 1)
    }
  loop "" 0

combinations "ABC" |> Seq.toList //["A"; "AB"; "ABC"; "AC"; "B"; "BC"; "C"]
Run Code Online (Sandbox Code Playgroud)