Loop gigante - Erro Garbage Colector

Eu tenho 6 listas de objetos bem grandes, e preciso fazer isso aqui:

for (Objeto1 obj1 : lista1){
     for (Objeto2 obj2 : lista2){
          for (Objeto3 obj3 : lista3){
               for (Objeto1 obj4 : lista4){
                    for (Objeto5 obj5 : lista5){
                        for (Objeto6 obj6 : lista6){
                             Objeto 7 = new Objeto7(obj1, obj2, obj3, obj4, obj5, obj6);
                        }
                    }
               }
          }
     }
}

Ou seja, quero todas as combinações possiveis que esses objetos podem ter. Mas chega uma hora que o programa para por causa do garbage collector, como faço para fazer esse calculo de maneira mais eficiente?