我现在已经困惑了大约5个小时了。我对Golang非常陌生(2天)......
我正在寻找一个for循环,它将使用特定字符创建给定大小的字符串的所有排列。不仅如此,还需要将其拆分为特定的块大小。我会尝试直观地向您展示我需要的东西..
chars := "abcdefghij"
string_size := 6
blocks := 5
start_position := 2
所以这个例子的可能性是10到6的幂......所以1,000,000 ..
我需要的是这个,例如1,000,000被分成上面提到的5个区块,因此每个循环有200,000个猜测。
因此,指定开始位置可以说比较
sections_usable := len(chars) / blocks
// sections_usable == 5
// this would then cherry pick 5 sections
sections := make([]rune, blocks)
base_count := 0
for i := 0; i < blocks * sections_usable; i = i + sections_usable {
sections[base_count] = rune(r[i])
base_count++
}
for i, xi := range x {
if i == 0 {
// This is where its selecting the starting character
// From the sections
p[i] = sections[block_to_use]
} else {
p[i] = r[xi]
}
}
下面是我想要返回的数据的示例 使用
chars := "abcdefghij"
string_size := 6
blocks := 5
start_position := 2
所以开始位置0将是“a”,1将是“c”,2将是“e”
所以使用0
AAAAAA
AAAAAB
aaaaac
aaaaad
...
abbbbb
abbbbc
abbbbd
...
acdddd
acddde
acdddf
现在使用开始位置2
eaaaaa
eaaaab
eaaaac
...
依此类推,但排列必须在它开始下一个块之前停止,即
ejjjjj