Based on your needs, as @LouisH referred to, using Linear Referencing is definitely the way to go. I cobbled together some code that should meet your need of not hard-coding elements, but instead requesting them as parameters.
As explanation, the Linear referencing tool used below takes "Routes", in your case the line features, and places "Events", in your case the points, along them based on a distance field. This results in a FeatureLayer, which is stored in memory, which is the reason for the last function which copies the features to an output featureclass.
from arcpy import env
wkspace = arcpy.GetParameterAsText(0)
#Line feature class
rtecls = arcpy.GetParameterAsText(1)
#Line Unique ID
rtecls_ID = arcpy.GetParameterAsText(2)
#Table of points to be located
pnttbl = arcpy.GetParameterAsText(3)
#Field in point table that references line point will be located along
pttbl_rteid = arcpy.GetParameterAsText(4)
#Distance field in point table
pttbl_dst = arcpy.GetParameterAsText(5)
#Output Layer, layer is stored in memory. Features still need to be copied to feature class saved to disk
outlayer = arcpy.GetParameterAsText(6)
#Output Feature Class - If shapefile, make sure to include ".shp" at the end.
outclass = arcpy.GetParameterAsText(7)
#Type of feature being located
fttype = "POINT"
env.workspace = wkspace
#Build String for input parameters in Linear Referencing tool
pt_props = pttbl_rteid + " " + fttype + " " + pttbl_dst
#Output featureclass path
outfclass = wkspace + os.sep + outclass
# Execute MakeRouteEventLayer
arcpy.MakeRouteEventLayer_lr (rtecls, rtecls_ID, pnttbl, pt_props, outlayer)
#Save feature layer to feature class on disk
One thing to think about with this tool, and likely any operation to locate points based on the distance from the end of a line, is which end of the line you will start from. The linear referencing tool, for instance, works based on the digitized direction of a line. It will be important to ensure that you have some way of identifying which endpoint your measurements are based upon.