Python: create adaptives Suffix
found it 

import bpy

i = 0 #default number
pref = "new" #name
name = "%s%d" % (pref, i)

for ob in bpy.context.selected_objects: #for every object in selection
    i += 1 #add i+1
    name = "%s%d" % (pref, i) #redefinie name
    ob.name = name


if i wanted to just keep the same name, i need to replace pref by 

pref = "%s" % bpy.context.object.name


if i want to make the prefix into a suffix or add _ - ect i just need to change 

name = "%s%d" % (pref, i)
to
name = "%s_%d" % (pref, i)


basically its simple, for each object in my selection, i add +1 to i = 1
that's it 

there is also a special python function that transform the number into numbers like 001 002 003 010.. ect... ii only work with strings so you need to convert the number into a string first:

newnumberfilledwithzeros =str(10).zfill(3) #will be = to 010


with all thoses examples, here what i came with this example below,
and witouth the " "%s" method, its actually not necessary for this small exercise.

name="hello"
#if you want to keep the same name and just add the suffix ? use this line below instead
#name= bpy.context.selected_object.name
start=0 #could start at -1 if you want the first obj to be named 000
zeros=3 #3x= numbers like 001,019... 4x = 0012,0003... ...
for ob in bpy.context.selected_objects:
    start+=1
    f=str(start).zfill(zeros)
    ob.name = name + f
    #result will be "hello001" "hello002" "hello003" ect..
    #want to be "hello_001" ? just to this below 
    #ob.name = name + "_" + f
    #want to do a prefix ? 
    #ob.name = f + "_" + name