我试图找到一种算法来生成7个字符串的每个可能组合。该字符串必须始终包含3个数字(0-9)和4个字母(A-Z)
实施例: 1GH2G2G, 22JUYT1, HGTY222
但我需要这些可能的组合。 我使用的是c ++但欢迎使用伪代码。
编辑(澄清): 问题是产生以下charset的所有可能组合" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"这是7个字符长,并且总是必须包含3个数字(0-9)和4个字母(A-Z)。我没有开始的基本字符串,上面的例子只是为了显示输出应该是什么样的。
非常感谢任何帮助,谢谢
答案 0 :(得分:-2)
尝试使用此尺寸。这是帕斯卡尔,但你会明白的。
procedure GenerateCodes;
begin
GenerateRest(7, 4, 3, '');
end;
procedure GenerateRest(
CharsLeft, LettersLeft, DigitsLeft: Integer;
const Prefix: string);
var
c: char;
begin
if CharsLeft = 0 then begin
write(Prefix,' ');
exit;
end;
if LettersLeft > 0 then
for c := 'A' to 'Z' do
GenerateRest(CharsLeft - 1, LettersLeft - 1, DigitsLeft, Prefix + c);
if DigitsLeft > 0 then
for c := '0' to '9' do
GenerateRest(CharsLeft - 1, LettersLeft, DigitsLeft - 1, Prefix + c);
end;