def get_possibles(exchange, data):
    """FIlter a list of datasets ``data``, returning those with the save name, reference product, and unit as in ``exchange``.

    Returns a generator."""
    key = exchange['name'], exchange['product'], exchange['unit']
    for ds in data:
        if (ds['name'], ds['reference product'], ds['unit']) == key:
            yield ds
