Javascript issue: array.push

I have a code snippet here that is supposed to vary values of certain parameter values:

<script type="text/javascript">
// dynamic array of which its ultimate size is unknown
// an array of arrays, each consisting of one variation
var variations = []; 

// parameters of how to create a variation
// data structure: initial parameter value, range size, step size
var parameters = [];
parameters[0] = [14, 2, 1];
parameters[1] = [25, 2, 1];
document.write("parameters: " + parameters + "<br>");
for (var j in parameters) document.write("parameters[" + j + "]: " + parameters[j] + "<br>");

// main loop
for (var k in parameters) create_variation(variations, parameters, k);
document.write("variations: " + variations + "<br>");

// create a variation and add it to variations
function create_variation(arr, params, k) {
  var a = [];
  
  // create initial variation
  for (var i = 0; i < params.length; i++) a = params[0];
  document.write("initial variation: " + a + "<br>");
  document.write("parameters: " + params[k] + "<br>");

  // create variations
  for (i = params[k][0] - params[k][1]; i < params[k][0] + params[k][1] + 1; i += params[k][2]) { 
    a[k] = i;      // vary parameter value in location k only, leaving the rest intact
    arr.push(a);   // push it onto the variations array
    document.write("k: " + k + "<br>" + "a: " + a + "<br>");
  }
  return arr;
}
</script>

The array parameters is the mapping with which the value is allowed to vary. So in the first case, the value is 14, allowed to vary with value 2 in steps of 1, which by itself would yield: 12, 13, 14, 15, 16.
The variation is with all other values in the parameters array as well. So ultimately there should be an array variations as follows:

[12,25],[13,25],[14,25],[15,25],[16,25]
[12,23],[13,23],[14,23],[15,23],[16,23]
[12,24],[13,24],[14,24],[15,24],[16,24]
[12,25],[13,25],[14,25],[15,25],[16,25]
[12,26],[13,26],[14,26],[15,26],[16,26]
[12,27],[13,27],[14,27],[15,27],[16,27]

Note that I am not worried about duplicates right now: row 1 and 4 are identical.
I don't understand however why the results returned only yield the following:

[16,25],[16,25],[16,25],[16,25],[16,25],
[14,27],[14,27],[14,27],[14,27],[14,27]