Proof of $\aleph_0^{\aleph_0} = \mathbb{c}$ without using Cantor's $2^{\aleph_0} = \mathbb{c}$ 
Prove that $\aleph_0^{\aleph_0} = \mathbb{c}$
without using Cantor's $2^{\aleph_0} = \mathbb{c}$

Card $\mathbb{N}^\mathbb{N} = \aleph_0^{\aleph_0}$
Card $(0, 1) = \mathbb{c}$
Define: $f: (0, 1) \rightarrow \mathbb{N}^\mathbb{N}\:\:$, by
$f(0.a_1a_2...a_n...) = \langle a_1,a_2...a_n...\rangle$
$f$ is a injective $\Rightarrow \mathbb{c} \leq \aleph_0^{\aleph_0}$
But i am not sure how to finish it form here.
 A: Given $f:\mathbb N\to\mathbb N$, define:
$$\alpha(f)=\sum_{k=0}^{\infty} 10^{-p_k^{f(k)+1}}$$
Where $p_k$ is the $k$th prime number, starting with $p_0=2$. 
Then $\alpha(f)$ is a distinct real number in the range $(0,1/9)$, because the base $10$ digits encode the values of $f$, and all the digits are $1$.

Here's an explicit 1-1 and onto function from $\mathbb N^{\mathbb N}$ to $(0,1]$. It is roughly like the continued fraction approach, but it is onto.
We'll assume $\mathbb N$ starts at one. We can start at zero, but it makes us add one a lot in our formulas.
Define $x_0=0,y_0=1$. 
Given $x_{n-1},y_{n-1}$, we define $$x_{n}=x_{n-1}+\frac{y_{n-1}-x_{n-1}}{f(n)+1}\\y_n=x_{n-1} + \frac{y_{n-1}-x_{n-1}}{f(n)}$$
Not that $x_{n-1}<x_n<y_n\leq y_{n-1}$, and $y_n-x_n =\frac{y_{n-1}-x_{n-1}}{f(n)(f(n)+1)}\leq\frac{y_{n-1}-x_{n-1}}2$. So we define $\alpha(f)=\lim_{n\to \infty} x_n=\lim_{n\to \infty} y_n$.
Note that if $f(n)\neq g(n)$ for some $n$, then $(x_n(f),y_n(f)]$ and $(x_n(g),y_n(g)]$ are disjoint.
Also, since $x_{n+1}>x_n$, you have that it is impossible for the limit value to be the lower bound of any of these intervals.
Also, you can get every real number $\alpha$ as an $\alpha(f)$ for some $f$ just be defining $f$ inductively. For example, if $\alpha\in(1/(n+1),1/n]$ then $f(1)=n$.
This is a lot like using base $10$ notation, but instead of at each step dividing an interval into $10$ equal sub-intervals, you are dividing the current half-closed interval into an infinite set of unequal-sized half-closed intervals. 
You could even make it increasing by taking $1-\alpha(f)\in[0,1)$. Then if $f(1)=g(1),f(2)=g(2),\dots, f(n-1)=g(n-1)$ and $f(n)<g(n)$ then $1-\alpha(f)<1-\alpha(g)$.
This is sort of what the continued fractions do - they carve each interval up into infinitely many intervals, but the end-points are reachable there.
If you want a function that is 1-1 and onto $(0,1)$, you can slightly tweak the definition:
$$\beta(f)=\begin{cases}\frac{1}{f(1)+1}&\text{if }f(n)=1\text{ for all } n>1\\
\alpha(f)&\text{otherwise}
\end{cases}$$
You can actually see that $\delta_n(f)=y_n-x_n = \frac{1}{\prod_{i=1}^n f(i)(f(i)+1)}$. If we define $\delta_n$ that way, then we see that:
$$\alpha(f)=\sum_{n=1}^\infty f(n)\delta_n(f)$$
That's using a little trick that $f(n)\delta_n(f)=\frac{\delta_{n-1}(f)}{f(n)+1}$.
A: Defining an explicit bijection is messy. If we can use the Cantor-Schröder-Bernstein theorem, then all we have to do is define injections $\mathbb R\to\mathbb N^\mathbb N\to\mathbb R,$ which is Quite Easily Done:
$$\mathbb R\to\mathcal P(\mathbb Q)\to\mathcal P(\mathbb N)\to2^\mathbb N\to\mathbb N^\mathbb N\to\mathcal P(\mathbb N\times\mathbb N)\to\mathcal P(\mathbb N)\to[0,\frac12]\to\mathbb R.$$
For $\mathbb R\to\mathcal P(\mathbb Q)$ use $x\mapsto\{q\in\mathbb Q:q\lt x\}.$
For $\mathbb N^\mathbb N\to\mathcal P(\mathbb N\times\mathbb N)$ use $(a_1,a_2,a_3,\dots)\mapsto\{(1,a_1),(2,a_2),(3,a_3),\dots\}.$
For $\mathcal P(\mathbb N)\to[0,\frac12]$ use $S\mapsto\sum_{n\in S}3^{-n}.$
