\documentclass[tikz,border=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[node distance={25mm}, main/.style = {draw, circle}]
\useasboundingbox (-4,-2) rectangle (7.5, 4.5);
\node[main] (0) {$00$};
\node[main] (1) [above of=0] {$01$};
\node[main] (2) [right=25mm of 1] {$10$};
\node[main] (3) [right=25mm of 0] {$11$};
\draw[->] (0) to [out=205,in=235, looseness=5] node[midway,xshift=-3pt, yshift=-3pt]{\small$0$} (0);
\draw[->] (0) to [out=200,in=240, looseness=10] node[midway, xshift=-4pt, yshift=-3pt]{\small$1$} (0);
\draw[->] (0) to [out=10,in=170, looseness=0] node[midway, above]{\small$2$} (3);
\draw[->] (0) to [out=350,in=190, looseness=0] node[midway, below]{\small$3$} (3);
\draw[->] (0) to [out=100,in=260, looseness=0] node[midway, left]{\small$2$} (1);
\draw[->] (0) to [out=80,in=280, looseness=0] node[midway, right]{\small$1$} (1);
\draw[->] (0) to [out=35,in=240, looseness=0] node[pos=0.8, below]{\small$1$} (2);
\draw[->, xshift=1.5cm] (0) to [out=285,in=350, looseness=3] node[midway, below]{\small$2$} (2);
\draw[->] (1) to [out=115,in=145, looseness=5] node[midway,xshift=-3pt, yshift=3pt]{\small$2$} (1);
\draw[->] (1) to [out=110,in=150, looseness=10] node[midway, xshift=-4pt, yshift=3pt]{\small$3$} (1);
\draw[->] (1) to [out=10,in=170, looseness=0] node[midway, above]{\small$2$} (2);
\draw[->] (1) to [out=350,in=190, looseness=0] node[midway, below]{\small$3$} (2);
\draw[->] (1) to [out=215,in=140, looseness=1] node[midway, right]{\small$1$} (0);
\draw[->] (1) to [out=200,in=155, looseness=1] node[midway, left]{\small$2$} (0);
\draw[->] (1) to [out=305,in=145, looseness=0] node[pos=0.7, below]{\small$3$} (3);
\draw[->] (1) to [out=75,in=10, looseness=3] node[midway, above]{\small$4$} (3);
\draw[->] (2) to [out=25,in=55, looseness=5] node[midway,xshift=3pt, yshift=3pt]{\small$2$} (2);
\draw[->] (2) to [out=20,in=60, looseness=10] node[midway, xshift=4pt, yshift=3pt]{\small$3$} (2);
\draw[->] (2) to [out=120,in=60, looseness=1] node[midway, above]{\small$2$} (1);
\draw[->] (2) to [out=134,in=45, looseness=1] node[midway, below]{\small$3$} (1);
\draw[->] (2) to [out=320,in=40, looseness=1] node[midway, left]{\small$3$} (3);
\draw[->] (2) to [out=335,in=25, looseness=1] node[midway, right]{\small$4$} (3);
\draw[->] (2) to [out=220,in=55, looseness=0] node[pos=0.8, above]{\small$1$} (0);
\draw[->] (2) to [out=105,in=170, looseness=3] node[midway, above]{\small$2$} (0);
\draw[->] (3) to [out=295,in=325, looseness=5] node[midway,xshift=3pt, yshift=-3pt]{\small$4$} (3);
\draw[->] (3) to [out=290,in=330, looseness=10] node[midway, xshift=4pt, yshift=-3pt]{\small$5$} (3);
\draw[->] (3) to [out=225, in=315, looseness=1] node[midway, above]{\small$2$} (0);
\draw[->] (3) to [out=240,in=300, looseness=1] node[midway, below]{\small$3$} (0);
\draw[->] (3) to [out=100,in=260, looseness=0] node[midway, left]{\small$3$} (2);
\draw[->] (3) to [out=80,in=280, looseness=0] node[midway, right]{\small$4$} (2);
\draw[->] (3) to [out=125,in=325, looseness=0] node[pos=0.7, above]{\small$3$} (1);
\draw[->] (3) to [out=255,in=190, looseness=3] node[midway, below]{\small$4$} (1);
\end{tikzpicture}
\end{document}