[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 请教PowerShell如何排列全部字符串组合(包括重复组合)?

我这里有一个数据需要对接,代码写到一半就差这个功能需要实现了

想把一串字符串排列成N组,速度要快,因为量非常大,字符串的长度每次都不一样

比如指定一个字符串是123456789,限定条件是6位数
那么组合是:
1
2
3
4
5
6
12
21
13
31
123
321
122
133
211
233
221
331
112
113
1234
4321
...
...
123456
..
..
其实就是排列他们全部的组合,包括重复的组合比如字符串是123456
最后6位数的时候可能还会出现一次
111111
222222
333333
...
...
666666
这种情况
指定的字符串希望可以由我自己决定,以及指定排列的位数

比如可能指定一个字符串: abcdef123456 然后位数是6
再或者字符串: abc,位数是3
如果指定的字符串长度低于指定的位数比如字符串为abc,位数为6
那么组合为
a
b
c
ab
bc
ac
abca
abcb
abcc
aaabbb
aaaccc
abcabc
aaaaaa
bbbbbb
cccccc
bacbac
cabcab
对于字符串低于指定的6位数,那么就在右侧继续填充,直到6位数全部组合跑完,就算处理完成

再此非常感谢,感谢感谢!

回复 5# wanghan519


    谢谢,现在没时间测试,有个紧迫的新问题

TOP

回复 2# pd1


    牛逼,经过测试,你的代码速度最快

TOP

回复 5# wanghan519


    经过测试,你和2L代码都速度很快,谢谢,2L的要更快一些

TOP

本帖最后由 bylove 于 2023-9-10 21:22 编辑

经过测试2L与5L代码速度都很快,谢谢

实验了一下数据:
字符串:1234567890
位数为:3

2L速度:0.83s
5L速度1.05s

这还是只是简单的测试,实际字符串和位数会很复杂.量很多,谢谢了

如果能讲解一下原理和思路就好了,这个递归看不懂

TOP

返回列表