生成 7 位数字所有可能组合的算法

Algorithms To Generate Every Possible Combination of 7 Digit

我正在尝试寻找一种算法来生成 7 个字符串的所有可能组合。字符串必须 ALWAYS 包含 3 个数字 (0-9) 和 4 个字母 (A-Z)

示例: 1GH2G2G, 22JUYT1, HGTY222

但我需要这些的所有可能组合。 我正在使用 C++,但欢迎使用伪代码。

编辑(澄清): 问题是生成以下字符集 "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 的所有可能组合,它的长度为 7 个字符,并且始终必须包含 3 个数字 (0-9) 和 4 个字母 (A-Z)。我没有开始的基本字符串,上面的例子只是为了展示输出应该是什么样的。

非常感谢任何帮助,谢谢

试试这件尺码。它是 Pascal,但你会明白的。

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;