我想生成一个包含可变字符列表的字符串的所有可能排列的列表。例如,如果我有字符串“ABC”,我想要一个包含所有可能变体的列表,例如:A、B、C、AB、BC。
谢谢你。
很难确切地说出您想要什么,但是根据您的示例输出,这里是我认为您在 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)