Come da titolo sto cercando di fare un piccolo algoritmo in java che mi restituisca tutte le possibili combinazioni tra determinati elementi:
Dato un array { 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8 } nel quale i 4 numeri vengono ripetuti 4 volte, io in pratica vorrei combinare gli elementi di questo array in tutti i modi possibili così che vengano 16^16 combinazioni.
So che potrei farlo facendo scalare ogni volta gli indici in modo da trovare tutte le combinazioni ma con 16^16 ci vogliono tantissimi controlli e quindi il programma viene oltremodo "inciampato".
In caso la mia richiesta non sia chiara faccio un semplice esempio: io ho un mazzo di carte con tutti i Jack, Donne, Re ed Assi... ovviamente ci sono 4 Jack ognuno dei quali con un diverso simbolo e ciò vale anche per le altre. Ora a me serve sapere tutte le possibili combinazioni con tale mazzo.
Come posso fare per avere un algoritmo che mi permetta di fare ciò ma nel modo più semplice possibile?