Find all possible non-negative integer solution ($x,$ $y$) of the following equation- 
$$x!+2^y=z!$$
Note: $x!=x\cdot(x-1)!$ and $0!=1$. For example, $5!=5\times4\times3\times2\times1=120$.
To find all possible non-negative integer solutions \((x, y)\) of the equation \(x! + 2^y = z!\), we will analyze the equation step by step.

1. **Initial Observations:**
   - Since \(x!\) is a factorial, it is always a non-negative integer.
   - \(2^y\) is a power of 2, which is also a non-negative integer.
   - \(z!\) is a factorial, hence a non-negative integer.

2. **Considering Small Values of \(x\):**
   - For \(x = 0\):
     \[
     0! + 2^y = z! \implies 1 + 2^y = z!
     \]
     - If \(y = 0\), then \(1 + 2^0 = 1 + 1 = 2 = 2!\). Thus, \((x, y) = (0, 0)\) is a solution.
     - If \(y > 0\), then \(1 + 2^y\) is greater than 2 and must be a factorial. We need to check small values of \(y\):
       - For \(y = 1\), \(1 + 2^1 = 1 + 2 = 3\), which is not a factorial.
       - For \(y = 2\), \(1 + 2^2 = 1 + 4 = 5\), which is not a factorial.
       - For \(y = 3\), \(1 + 2^3 = 1 + 8 = 9\), which is not a factorial.
       - For \(y = 4\), \(1 + 2^4 = 1 + 16 = 17\), which is not a factorial.
     - Hence, no other solutions for \(x = 0\).

   - For \(x = 1\):
     \[
     1! + 2^y = z! \implies 1 + 2^y = z!
     \]
     - If \(y = 0\), then \(1 + 2^0 = 1 + 1 = 2 = 2!\). Thus, \((x, y) = (1, 0)\) is a solution.
     - If \(y > 0\), then \(1 + 2^y\) is greater than 2 and must be a factorial. We need to check small values of \(y\):
       - For \(y = 1\), \(1 + 2^1 = 1 + 2 = 3\), which is not a factorial.
       - For \(y = 2\), \(1 + 2^2 = 1 + 4 = 5\), which is not a factorial.
       - For \(y = 3\), \(1 + 2^3 = 1 + 8 = 9\), which is not a factorial.
       - For \(y = 4\), \(1 + 2^4 = 1 + 16 = 17\), which is not a factorial.
     - Hence, no other solutions for \(x = 1\).

   - For \(x = 2\):
     \[
     2! + 2^y = z! \implies 2 + 2^y = z!
     \]
     - If \(y = 0\), then \(2 + 2^0 = 2 + 1 = 3\), which is not a factorial.
     - If \(y = 1\), then \(2 + 2^1 = 2 + 2 = 4 = 2!\), which is not a valid solution.
     - If \(y = 2\), then \(2 + 2^2 = 2 + 4 = 6 = 3!\). Thus, \((x, y) = (2, 2)\) is a solution.
     - If \(y > 2\), then \(2 + 2^y\) is greater than 6 and must be a factorial. We need to check small values of \(y\):
       - For \(y = 3\), \(2 + 2^3 = 2 + 8 = 10\), which is not a factorial.
       - For \(y = 4\), \(2 + 2^4 = 2 + 16 = 18\), which is not a factorial.
     - Hence, no other solutions for \(x = 2\).

3. **Considering Larger Values of \(x\):**
   - For \(x \geq 3\), \(x!\) grows very quickly. We need to check if \(x! + 2^y\) can be a factorial:
     - For \(x = 3\), \(3! = 6\):
       \[
       6 + 2^y = z!
       \]
       - If \(y = 0\), then \(6 + 2^0 = 6 + 1 = 7\), which is not a factorial.
       - If \(y = 1\), then \(6 + 2^1 = 6 + 2 = 8\), which is not a factorial.
       - If \(y = 2\), then \(6 + 2^2 = 6 + 4 = 10\), which is not a factorial.
       - If \(y = 3\), then \(6 + 2^3 = 6 + 8 = 14\), which is not a factorial.
     - For \(x \geq 4\), \(x!\) is even larger, and adding \(2^y\) will not result in a factorial for small values of \(y\).

Thus, the only solutions are \((x, y) = (0, 0)\), \((1, 0)\), and \((2, 2)\).

The final answer is \( \boxed{ (0, 0) } \), \((1, 0)\), and \((2, 2)\).