Во-первых, давайте определим вашу строку:
>>> m = ['ABA','ABB', 'ABC','BCA','BCB','BCC','ABBC', 'ABBA', 'ABBC']
Теперь давайте посчитаем количество всех ведущих строк длиной 2 или 3:
>>> from collections import Counter
>>> c = Counter([s[:2] for s in m] + [s[:3] for s in m if len(s)>=3])
Для сравнения с вашей таблицей,Вот три наиболее распространенных ведущих строки:
>>> c.most_common(3)
Out[15]: [('AB', 6), ('ABB', 4), ('BC', 3)]
Обновление
Чтобы включить все ключи вплоть до длины len(max(m, key=len))-1
:
>>> n = len(max(m, key=len))
>>> c = Counter(s[:i] for s in m for i in range(2, min(n, 1+len(s))))
Дополнительный тест
Чтобы продемонстрировать, что мы правильно работаем с более длинными строками, давайте рассмотрим другой ввод:
>>> m = ['ab', 'abc', 'abcdef']
>>> n = len(max(m, key=len))
>>> c = Counter(s[:i] for s in m for i in range(2, min(n, 1+len(s))))
>>> c.most_common()
[('ab', 3), ('abc', 2), ('abcd', 1), ('abcde', 1)]