如何获得具有固定字符位置的字符串的所有组合


How to get all combinations of a string with fixed character position?

我需要找到一种方法来生成具有特定字符的字符串的所有组合,以便始终在PHP中显示。

例如,给定字符串'ABCD',我想获得字符串中包含字符'B'的所有组合,我想得到:

array(' B ',' BC ',BCD,' b ' d ',"AB","ABC","AB D ',"ABCD")

缺失的字符用空格替换。有人有什么想法吗?

如果您认为字符串中的每个字母要么是"开"要么是"关",就像二进制数中的一个位,这很容易。实际上,您可以这样表示它。

把你的字符串想象成一个四位数字,可以是0b0000 = 0 = ""0b1111 = 15 = "ABCD"之间的任何数字。然后你就可以遍历从0到15的所有数字,并通过查看设置了哪些位来找到相应的"排列"。

例如,"permutation" 6: 0b0110 -> " BC "

希望有帮助!

PS:如果这是家庭作业,你应该这样标记——在这里不这样做有点失礼。

PPS:你的"排列"实际上是"组合"。链接到维基百科,如果你好奇的话