l = [('HCS', 'Assured Build', 'Implementation', 'Hardware Stack'), ('HCS',
    'Assured Build', 'Implementation', 'SA and SF'), ('HCS',
    'Assured Build', 'Testing and Validation', 'NFRU-SS'), ('HCS',
    'Assured Build', 'Testing and Validation', 'NRFU-UC'), ('HCS',
    'Assured Platform', 'Restoration', 'AS Build'), ('HCS',
    'Assured Platform', 'Restoration', 'Capacity Management'), ('HCS',
    'Assured Platform', 'Migration', 'Document Review')]
d = defaultdict(lambda : defaultdict(lambda : defaultdict(list)))
for key1, key2, key3, value in l:
    d[key1][key2][key3].append(value)
print(json.dumps(d, indent=4))
list of tuples to dictionary of dictionaries