De ce contează?
Gândește-te la lacătul cu cifru de la o bicicletă: are mai multe rotițe, iar fiecare rotiță poate arăta o cifră de la 0 la 9. Ca să încerci toate combinațiile, ții fixate rotițele din stânga și învârti ultima rotiță prin toate cifrele; când a făcut un tur complet, avansezi rotița dinainte cu un pas și o iei de la capăt. Un odometru de mașină face exact la fel. Produsul cartezian este tocmai asta: parcurgi toate aranjamentele posibile alegând câte o valoare pe fiecare poziție.
Intuiția
Ai mai multe poziții (rotițe), iar fiecare poziție poate lua valori dintr-o mulțime. Un tuplu înseamnă să alegi exact o valoare pe fiecare poziție. Produsul cartezian este mulțimea tuturor tuplurilor posibile. Cheia: alegerile sunt independente — orice valoare de pe o poziție se poate combina cu orice valoare de pe celelalte. De aceea numărul total este produsul dimensiunilor, nu suma.
Gândul de bază al generării: la fiecare poziție încerci pe rând toate valorile, iar după ce ai fixat una, recurgi la poziția următoare. Când ai fixat o valoare pe toate pozițiile, ai un tuplu complet. Apoi te întorci și încerci valoarea următoare pe poziția curentă — exact rotița care avansează.