Мне нравится использовать генератор для подобных задач, накапливая результат unitl, мы видим следующий старт результата, затем получая результат, который мы собрали.
def key_val_gen(a):
key = None
vals = []
for item in a:
if item.startswith('AAA: '):
if key:
yield key, vals
key = item.split(maxsplit=1)[1]
vals = []
else:
vals.append(item)
if key:
yield key, vals
a = ['AAA: key1', 'value1', 'value2', 'AAA: key2', 'value3', 'value4', 'value5', 'AAA: key3', 'value6', 'value7']
print(dict(key_val_gen(a)))
# {'key1': ['value1', 'value2'], 'key2': ['value3', 'value4', 'value5'], 'key3': ['value6', 'value7']}