We provide a construction of natural numbers that is unique with respect to other constructions, and use this construction in the domain of algebra and finite functions to find several results in finite group theory. First, we give a linear order to the set of all finite functions. This gives a linear order in the subset of all finite permutations. To do this, we assign a unique natural number, $N_f$, to every finite function $f$. The sub order on permutations is well defined with respect to cardinality; if $\eta_m,\eta_n$ are permutations on $m<n$ objects, then $N_{\eta_m}<N_{\eta_n}$. This representation also has the characteristic $N_{\textbf{1}_n}<N_{\eta}<N_{\textbf{id}_n}$ where $\textbf{1}_n$ is the one-cycle permutation of $n$ objects, $\textbf{id}_n$ is the identity permutation of $n$ objects, and $\eta$ is any permutation of $n$ objects. This representation provides a good definition of equivalent functions, and equivalent objects on functions. We are able to do this for both concrete functions, and abstract functions. We use this in the main section, on group theory, to number the set of all finite groups. We are able to well represent every finite group as a natural number; two groups are represented by the same natural number if and only if they are in the same isomorphism class. In fact, we are able to give a linear order to the set of finite groups. Specifically, we give a canonical bijective function $\textbf{G}_{Fin}\rightarrow\mathbb N$. This representation, $N_G$, of $G$, is also well behaved with respect to cardinality. Additionally, the cyclic group $\mathbb Z_n$ has smaller representation than any group of $n$ objects, and the group with largest representation is the abelian group $\mathbb Z_{p_1}^{n_1}\oplus\mathbb Z_{p_2}^{n_2}\oplus\cdots\oplus\mathbb Z_{p_k}^{n_k}$, where $n=p_1^{n_1}p_2^{n_2}\cdots p_{k}^{n_k}$ is the prime factorization of $n$. This representation of a finite group as a natural number also provides a linear order to the elements of the group, arranging its Cayley table in a canonical block form. The last section is an introductory description of real numbers as infinite sets of natural numbers. Real functions are represented as sets of real numbers, and sequences of real functions $f_1,f_2,\ldots$ are well represented by sets of real numbers, as well. In the last section we well assign mathematical objects to tree structures and conclude with some brief comments on type theory and future work. In general we are able to represent and manipulate mathematical objects with the smallest possible type, and minimum complexity.