@staticmethod
def fill_vencode_list(promoter_list, vencode_list, combinations_number):
    """
        Given an incomplete list of x REs that make up a VEnCode, it fills the list up, up to y VEnCodes (
        y = RE combinations number), based on next sparse REs.
        :param promoter_list: list of promoters to add to VEnCodes
        :param vencode_list:
        :param combinations_number:
        :return: A list of y REs that comprise a VEnCode, where y = combinations number.
        """
    assert len(vencode_list
        ) <= combinations_number, 'vencode list len is bigger than wanted RE number'
    if len(vencode_list) == combinations_number:
        return vencode_list
    for prom in promoter_list:
        if prom in vencode_list:
            continue
        vencode_list.append(prom)
        if len(vencode_list) == combinations_number:
            break
    return vencode_list
