>>> from itertools import groupby
>>> from collections import Counter
>>> strs = 'TTHHTHHTHHHHTTHHHTTT'
>>> Counter(k for k, g in groupby(strs))
Counter({'T': 5, 'H': 4})
itertools.groupby группирует элемент на основе ключа. (по умолчанию ключ - это элементы самого итерабельного)
Здесь первый элемент - это ключ (k), на основе которого элементы были сгруппированы, а list(g) - это группа, связанная с этим ключом. Поскольку нас интересует только часть key, поэтому мы можем передать k в collections.Counter, чтобы получить желаемый ответ.
Ответ 2
Для разнообразия подход re
import re
letters = ['H', 'T']
matches = re.findall(r'({})\1*'.format('|'.join(letters)), 'TTHHTHHZTHHHHTTHHHTTT')
print matches
['T', 'H', 'T', 'H', 'T', 'H', 'T', 'H', 'T']
[(letter, matches.count(letter)) for letter in letters]
[('H', 4), ('T', 5)]