def generate_data_set(hashon, algos, hasher_that_takes_new):
    """Generates dataset based on data and list of strings that can be used to create objects to use that data"""
    data_dict = dict()
    for algo in algos:
        hashed = hasher_that_takes_new(algo, hashon.encode()).hexdigest()
        data_dict.update({algo: {'data': hashed, 'size': len(hashed),
            'size-as': list(), 'connection': list()}})
    for key in data_dict:
        hashed = data_dict[key]['data']
        length = data_dict[key]['size']
        for second in data_dict:
            if length == data_dict[second]['size'] and not second == key:
                if hashed == data_dict[second]['data']:
                    data_dict[key]['connection'].append(second)
                else:
                    data_dict[key]['size-as'].append(second)
            else:
                continue
    return data_dict
