Массив - ссылочный тип
result.Add(permutations); - здесь ты добавляешь ссылку на этот массив, после чего снова работаешь с этим же массивом. В итоге оба элемента result являются ссылками на один и тот же массив, поэтому в консоль выводится несколько раз один и тот же вариант.
В result.Add тебе нужно передать отдельную копию массива, например так
result.Add(permutations.Clone() as int[]);