def _build_bit_string_set(b_strings, dif_qubits, dif_values):
  """
    Creates a new set of bit strings from b_strings, where the bits 
    in the indexes in dif_qubits match the values in dif_values. 
    
    Args: 
      b_strings: list of bit strings eg.: ['000', '011', ...,'101']
      dif_qubits: list of integers with the bit indexes
      dif_values: list of integers values containing the values each bit
                  with index in dif_qubits shoud have 
    Returns:
      A new list of bit_strings, with matching values in dif_values
      on indexes dif_qubits
  """
  bit_string_set = [] 
  
  for b_string in b_strings: 
    include_string = True
    for (b_index, b_value) in zip(dif_qubits, dif_values):
      if b_string[b_index] != b_value:
        include_string = False
    if include_string:
      bit_string_set.append(b_string)
  return bit_string_set