j0hnik, 
	
<script>
var arr = ['A','B','C','D','E'];
function fn(e, k) {
    for (var f = [], c = e.length, g = 0;; g++) {
        var b = g.toString(c);
        if (b.length > k) break;
        b = b.padStart(k,"0").replace(/./g, d => (d = parseInt(d, c),e[d]));
        f.push(b);
    }
    return f;
};
document.write(fn(arr, 4).join('<br>'));
  </script>
 | 
	
		
 toString --- поэтому длина массива не более 36, на всякий ... 
	 | 
	
		
 рони, 
	Наверное есть более оптимальный алгоритм d = parseInt(d, c) - вот это не гуд вдруг 
var arr = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&`.split('');
 | 
	
		
 рони, 
	Я в зал, приду напишу что нибудь полезное (если придумаю :lol: )  | 
	
		
 Цитата: 
	
 Цитата: 
	
  | 
	
		
 Можно было бы ограничиться рекурсивной переделкой варианта j0hnik: 
	
function generate(arr, i, value, result){
  if(!result){
    return generate(arr, i, '', []);
  }
  if(!i--) {	
    return result.push(value);
  };
  for(var k = 0; k < arr.length; k++){
    generate(arr, i, value + arr[k], result);
  }
  return result
}
console.log(generate(['A','B','C','D','E'], 4))
Но на самом деле тут просто нужно добавить капельку математики: 
function generate(arr, n){
  var length = arr.length,
      result = new Array(Math.pow(length, n));
  for(var i = result.length, temp = new Array(n), j; i--;){
    j = n;
    while(j--){
      temp[j] = arr[i / Math.pow(length, j) % length | 0];
    }
    result[i] = temp.join('');
  }
  
  return result
}
console.log(generate(['A','B','C','D','E'], 4));
 | 
	
		
 Aetae, 
	j0hnik, рони, спасибо вам что помогаете, взял вот этот массив, 
var arr = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&`.split('');
попробовал подбирать на лету, потому что массив засоряет память до 6 символов в принципе реально подбирается. как думаете реально до 8 символов?  | 
	
		
 Цитата: 
	
  | 
	
		
 рони, 
	я и говорю что от этого уже отошел, теперь во время уперся =(  | 
	
		
 VSEM-DOBRA, 
	времени все равно много займет, зависит от проца и самого пароля, тут еще есть куда ускоряться!  | 
| Часовой пояс GMT +3, время: 10:04. |