Check out gdalwarp that is part of the GDAL library. There are Python bindings available through the osgeo package.
This is untested, but it should get you close to what you need:
from osgeo import gdal
outputBounds=[minX, minY, maxX, maxY]
You'll need to define the source and ...