n个数字(字母,数字)的所有可能组合


All possible combinations with n digits (letters, numbers)

我受到这篇文章的启发:

PHP算法从单个集合生成特定大小的所有组合

我使用下面的代码片段:

function comb ($n, $elems) {
    if ($n > 0) {
      $tmp_set = array();
      $res = comb($n-1, $elems);
      foreach ($res as $ce) {
          foreach ($elems as $e) {
             array_push($tmp_set, $ce . $e);
          }
       }
       return $tmp_set;
    }
    else {
        return array('');
    }
}
$elems = array('A','B','C', 'a', 'b', 'c', 0, 1, 2, 3);
$v = comb(7, $elems);

这工作得很好,但问题是,它创建了这样的组合:

(A, B, A)(a, b, c)(a, b, c, 0)(A, B, C, 1, 2)

我想跳过所有这些3的组合,我只想要7位数的所有组合,FPR示例:

(A, B, C, 0, 1, 2, A)(A, B, C, 0, 1, 2, B)

等等…

我如何调整这段代码,

谢谢你的帮助!

你的代码对我来说很好。尝试只使用三个元素运行它,您将看到它只输出长度为7的组合。别忘了在末尾加上print_r($v)