I need to create a 3D point grid such as the screenshot below, that is defined by a Max/Min of X,Y and Z and with a defined point spacing.

My first thought was to create a raster with the xy and spacing/pixel size to match the variables above, then convert to point. Or to use the fishnet tool to extract the "label point" output. But the issue is how to duplicate in the vertical, which may need duplicating up to 200x depending on the scenario.
This might be easier to achieve in python, but am unsure of how to go about it. The XYZ min/max would all be defined by a collection of terrain rasters. The pixel/point spacing would just be a manual input.
Unless there's a better way, my thinking is to duplicate rasters with a fixed value from Zmin to Zmax with increments matching the point spacing, then create 3D points from these.