...
lyr = arcpy.mapping.ListLayers(mxd, 'layer_name_in_mxd)[0]
if lyr.supports('SYMBOLOGY'):
lyr.symbology.valueField = field_name
lyr.symbology.classBreakValues = [0, 0.01, 0.05, 0.5, 0.75, 1]
lyr.symbology.classBreakLabels = ['<1%', '1-5%', '5-50%', '50-75%', '>75%']
...
arcpy.RefreshActiveView()
...
with arcpy.da.SearchCursor(lyr, (field_name)) as cur:
max_v = max([v[0] for v in cur])
...
if lyr.supports('SYMBOLOGY'):
lyr.symbology.valueField = field_name
lyr.symbology.classBreakValues = [0, 0.01 * max_v, 0.05 * max_v, 0.5 * max_v, 0.75 *max_v, max_v]
...
arcpy.RefreshActiveView()