Either PyPDF2 or pdfrw will let you overlay two PDFs (so, for example, you can generate a PDF which is only page numbers, and use it to watermark your images). pdfrw has a watermark example that uses a single watermark page, but this could easily be modified to use a set of watermark pages, one for each page number.
If you want to get fancier, you can use reportlab to generate these pages on the fly.
pdfrw also has a facility that allows you to import a PDF page into reportlab as if it were an image. There are a couple of examples around that do this dynamically -- here is a good starting point.
Finally, rst2pdf (which is not all that well maintained but works well for simple cases) also lets you import PDFs as images -- it uses pdfrw and reportlab under the hood -- so you can easily use restructuredText to create documents with your images embedded. AFAIK, the best reportlab to use with the released version of rst2pdf is 2.7.
(Disclaimer: I am the pdfrw author and have made contributions to rst2pdf.)