I have a 3D space (x, y, z) with an additional parameter at each point (energy), giving 4 dimensions of data in total.
I would like to find a set of x, y, z points w
There are quite a few options here...
In order to get your energy into your mesh, you'll need to use some form of interpolation. Shepard's method is a common, and reasonably simple, method to implement, and tends to work well if your data distribution is reasonable.
Once you have that done, you'll need to do some form of isosurface generation.
There are some libraries out there to make this easy. Most notably, VTK includes python wrappers and has all of the tools required to do both of these steps.
For details on how this could be done in VTK, you can check vtkShepardMethod and vtkContourFilter.