data = ['ades', 'adey', 'adhere', 'adherent', 'admin', 'admit', 'adverb',
    'advert', 'adipocere', 'adipocerous', 'adjoining', 'adjoint',
    'adjudicate', 'adjudication', 'adjunct']
{i: j for i, j in zip(data, data[1:]) if i[:-1] == j[:-1]}
Regex: Efficiently matching words that are the same except for last character