I need to draw some groups of overlapping rectangles, for example:

They are labeled by numbers, rectangle 1 is overlapping rectangle 2 etc.
Is there a way to change automatically the position of numbers so that they are all visible? Or to place all numbers over all the rectangles?
The code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,backgrounds}
\usepackage{etoolbox}% provides \preto
\makeatletter
\newcommand*{\collect@draws}{}
\newcommand*{\reversedraws}{%
\renewcommand*{\collect@draws}{}% initialize
\look@for@draw
}
\newcommand*{\look@for@draw}{%
\@ifnextchar\draw{%
\catch@draw
}{%
\collect@draws % output the result
}%
}
\def\catch@draw\draw#1;{%
\preto\collect@draws{\draw#1;}%
\look@for@draw
}
\makeatother
\begin{document}
\begin{tikzpicture}[scale = 4]
\reversedraws
\draw [fill=yellow] (0.445041,0.801937) rectangle (0,1) node[midway] {$1$};
\draw [fill=yellow] (0.692021,0.356896) rectangle (1,1) node[midway] {$2$};
\draw [fill=yellow] (0.692021,0.356895) rectangle (0,0) node[midway] {$3$};
\draw [fill=yellow] (0.137063,0.158832) rectangle (0,1) node[midway] {$4$};
\draw [fill=yellow] (0.384043,0.713791) rectangle (1,0) node[midway] {$5$};
\draw [fill=yellow] (0.829084,0.515727) rectangle (0,1) node[midway] {$6$};
\draw [fill=yellow] (0.521105,0.872622) rectangle (0,0) node[midway] {$7$};
\end{tikzpicture}
\begin{tikzpicture}[scale = 4]
\reversedraws
\draw [fill=yellow] (0.145041,0.801937) rectangle (0,1) node[midway] {$1$};
\draw [fill=yellow] (0.692021,0.356896) rectangle (0.7,1) node[midway] {$2$};
\draw [fill=yellow] (0.392021,0.356895) rectangle (0,0) node[midway] {$3$};
\draw [fill=yellow] (0.384043,0.713791) rectangle (0.7,0) node[midway] {$4$};
\draw [fill=yellow] (0.529084,0.515727) rectangle (0,1) node[midway] {$5$};
\draw [fill=yellow] (0.521105,0.872623) rectangle (0.7,1) node[midway] {$6$};
\draw [fill=yellow] (0.221105,0.872622) rectangle (0,0) node[midway] {$7$};
\draw [fill=yellow] (0.213127,0.229518) rectangle (0.7,1) node[midway] {$8$};
\end{tikzpicture}
\end{document}

