Можно либо регулярками разделить (re.split()), либо заменить ":" на ";" а затем split как у тебя - получишь список, где все четные элементы - интересующие тебя цифры
Замена:
teststr = 'elemen1:12345;element2:54321;element3:6789'
result_list = teststr.replace(':', ';').split(';')
print('Result:', result_list)
Result: ['elemen1', '12345', 'element2', '54321', 'element3', '6789']
С помощью модуля re:
import re
teststr = 'elemen1:12345;element2:54321;element3:6789'
result_list = re.split('[;:]', teststr)
print('Result:', result_list)
Result: ['elemen1', '12345', 'element2', '54321', 'element3', '6789']
UPD: Если предполагается, что у тебя все цифры - положительные, то легко можно в результирующем списке оставить только цифры:
teststr = 'elemen1:12345;element2:54321;element3:6789'
result_list = [elem for elem in teststr.replace(':', ';').split(';') if elem.isdigit()]
print(result_list)
['12345', '54321', '6789']
Если цифры могут быть и отрицательными, то тоже легко но по другому)))