function generate(arr, n){
var length = arr.length, x=0;
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];
x++;
}
}
return x;
}
alert(generate(['A','B','C','D','E'], 4));