Как я могу преобразовать эти вложенные циклы в рекурсивную форму?

У меня возникли проблемы с попыткой сгенерировать все возможные комбинации сетки n * n. В приведенном ниже коде показано, как я буду это делать, используя вложенные циклы и сетку 2 * 2. Однако, если бы я захотел сделать то же самое, скажем, для сетки 6*6, было бы слишком утомительно составлять такой обширный список циклов.

Может ли кто-нибудь помочь мне преобразовать метод bruteSolve() в рекурсивный метод, чтобы я мог выбирать размер сетки?

Заранее спасибо :) Это была проблема, с которой я застрял целую вечность :(

static ArrayList<Integer> numbers;

static int n;

static int [] [] grid;

static int count;


public static void main (String [] args){

    n = 2;  

    grid = new int [n] [n] ;

    bruteSolve(n);
}

public static void bruteSolve(int n){

    for (int i=1; i<n+1; i++){
        grid [0][0] = i; 
        for (int j=1; j<n+1; j++){
            grid [0][1] = j;
            for (int k=1; k<n+1; k++){
                grid [1][0] = k; 
                for (int l=1; l<n+1; l++){
                    grid [1][1] = l;


                        System.out.println(Arrays.deepToString(grid));


                }
            }
        }
    }

}

person Hisham Mohammed    schedule 06.10.2015    source источник
comment
Я думаю, вы хотите посмотреть на создание пользовательского объекта с методом обработки одного экземпляра цикла. Затем объект можно использовать рекурсивно, если метод принимает объект в качестве входных данных.   -  person J E Carter II    schedule 06.10.2015