Related Articles
Cartesian Product of Two Sets
• Difficulty Level : Basic
• Last Updated : 08 Apr, 2021

Let A and B be two sets, Cartesian productA × B is the set of all ordered pair of elements from A and B
A × B = {{x, y} : x ∈ A, y ∈ B}

Let A = {a, b, c} and B = {d, e, f}
The Cartesian product of two sets is
A x B = {a, d}, {a, e}, {a, f}, {b, d}, {b, e}, {b, f}, {c, d}, {c, e}, {c, f}}
A has 3 elements and B also has 3 elements. The Cartesian Product has 3 x 3 = 9 elements.
In general, if there are m elements in set A and n elements in B, the number of elements in the Cartesian Product is m x n

Given two finite non-empty sets, write a program to print Cartesian Product.
Examples :

```Input : A = {1, 2}, B = {3, 4}
Output : A × B = {{1, 3}, {1, 4}, {2, 3}, {2, 4}}

Input  : A = {1, 2, 3} B = {4, 5, 6}
Output : A × B = {{1, 4}, {1, 5}, {1, 6}, {2, 4},
{2, 5}, {2, 6}, {3, 4}, {3, 5}, {3, 6}}```

## CPP

 `// C++ Program to find the Cartesian Product of Two Sets``#include ` `void` `findCart(``int` `arr1[], ``int` `arr2[], ``int` `n, ``int` `n1)``{``    ``for` `(``int` `i = 0; i < n; i++)``        ``for` `(``int` `j = 0; j < n1; j++)``            ``printf``(``"{%d, %d}, "``, arr1[i], arr2[j]);``}` `int` `main()``{``    ``int` `arr1[] = { 1, 2, 3 }; ``// first set``    ``int` `arr2[] = { 4, 5, 6 }; ``// second set``    ``int` `n1 = ``sizeof``(arr1) / ``sizeof``(arr1);``    ``int` `n2 = ``sizeof``(arr2) / ``sizeof``(arr2);``    ``findCart(arr1, arr2, n1, n2);``    ``return` `0;``}`

## Java

 `// Java Program to find the``// Cartesian Product of Two Sets``import` `java.io.*;``import` `java.util.*;` `class` `GFG {` `    ``static` `void` `findCart(``int` `arr1[], ``int` `arr2[],``                                    ``int` `n, ``int` `n1)``    ``{``        ``for` `(``int` `i = ``0``; i < n; i++)``          ``for` `(``int` `j = ``0``; j < n1; j++)``            ``System.out.print(``"{"``+ arr1[i]+``", "``                             ``+ arr2[j]+``"}, "``);``    ``}``    ``// Driver code``    ``public` `static` `void` `main (String[] args) {``        ` `        ``// first set``        ``int` `arr1[] = { ``1``, ``2``, ``3` `};``        ` `        ``// second set``        ``int` `arr2[] = { ``4``, ``5``, ``6` `};``        ` `        ``int` `n1 = arr1.length;``        ``int` `n2 = arr2.length;``        ``findCart(arr1, arr2, n1, n2);``    ``}``}`  `// This code is contributed by Nikita Tiwari.`

## Python3

 `# Python3 Program to find the``# Cartesian Product of Two Sets` `def` `findCart(arr1, arr2, n, n1):` `    ``for` `i ``in` `range``(``0``,n):``        ``for` `j ``in` `range``(``0``,n1):``            ``print``(``"{"``,arr1[i],``", "``,arr2[j],``"}, "``,sep``=``"``",end="``")` `# Driver code``arr1 ``=` `[ ``1``, ``2``, ``3` `] ``# first set``arr2 ``=` `[ ``4``, ``5``, ``6` `] ``# second set` `n1 ``=` `len``(arr1) ``# sizeof(arr1)``n2 ``=` `len``(arr2) ``# sizeof(arr2);` `findCart(arr1, arr2, n1, n2);` `# This code is contributed``# by Smitha Dinesh Semwal`

## C#

 `// C# Program to find the``// Cartesian Product of Two Sets``using` `System;` `class` `GFG {` `    ``static` `void` `findCart(``int` `[]arr1, ``int` `[]arr2,``                                    ``int` `n, ``int` `n1)``    ``{``        ``for` `(``int` `i = 0; i < n; i++)``            ``for` `(``int` `j = 0; j < n1; j++)``                ``Console.Write(``"{"` `+ arr1[i] + ``", "``                                ``+ arr2[j] + ``"}, "``);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main () {``        ` `        ``// first set``        ``int` `[]arr1 = { 1, 2, 3 };``        ` `        ``// second set``        ``int` `[]arr2 = { 4, 5, 6 };``        ` `        ``int` `n1 = arr1.Length;``        ``int` `n2 = arr2.Length;``        ` `        ``findCart(arr1, arr2, n1, n2);``    ``}``}`  `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output :

`{{1, 4}, {1, 5}, {1, 6}, {2, 4}, {2, 5}, {2, 6}, {3, 4}, {3, 5}, {3, 6}}`

Practical Examples:
1) A set of playing cards is Cartesian product of a four element set to a set of 13 elements.
2) A two dimensional coordinate system is a Cartesian product of two sets of real numbers.
Reference:
https://en.wikipedia.org/wiki/Cartesian_product

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up