In the perfect scenario, your field would be sorted as in your example, so that replicant case are sequential. In such rare situations you can use...
old = ""
cnt = 0
def seq_count(val):
global old
global cnt
if old == val:
cnt += 1
ret = "{} {:04.0f}".format(val, cnt)
else:
cnt = 0
ret = "{} {:04.0f}".format(val, cnt)
old = val
return ret
__esri_field_calculator_splitter__
seq_count(!Test!)
Replacing the !Test! field with your field's name. Of course this is python etc.
However... unless the table is sorted physically (not just hitting the sort ascending/descending option), then the above won't work, and you would have to build a dictionary to save your counts. So this is just an example and probably not a solution unless you want to sort your table on that field