List_One = [ "a" , "b" , "c" , "d" , "e" ]
TrailingNumbers = 3
for index in range(0, len(List_One)):
for num in range(0,TrailingNumbers+1):
List_One[index] = List_One[index] + str(num)
print(List_One)
This will modify the existing List obviously, didn't see the point in creating a new list, but if you do simply do:
List_Two = []
...
List_Two.append(List_One[index] + str(num))
I also assumed that you didn't have a fixed number to add after each letter.
For instance this would be a dynamical way to add numbers after each letter.
List_One = [ "a" , "b" , "c" , "d" , "e" ]
List_Two = []
TrailingNumbers = 3
for obj in List_One:
List_Two.append(obj + ''.join(list(str(num) for num in range(0,TrailingNumbers+1))))
print(List_Two)
This is another way of doing it where you only use one loop to iterate over the first list, adding to a second list with a generator object for adding the numbers to your string.
A better approach to the first solution is to not count the index yourself and let enumerate() do the job for you. A bit quicker and considered "best practice", it goes something like:
List_One = [ "a" , "b" , "c" , "d" , "e" ]
TrailingNumbers = 3
for index, obj in enumerate(List_One):
for num in range(0,TrailingNumbers+1):
List_One[index] = List_One[index] + str(num)
print(List_One)
It will be a bit quicker, but will do the same job.