code: def discover_group(group, separator="/", exclude=None):
      
      _start_beacon()
      if exclude is None:
          names_to_exclude = set()
      else:
          names_to_exclude = set(exclude)
      all_discovered = _rpc("discover_all")
      return [(name, address) 
          for (name, address) in all_discovered 
          if name.startswith("%s%s" % (group, separator))
          and name not in names_to_exclude
      ]
docs: Produce a list of all services and their addresses in a group
      
      A group is an optional form of namespace within the discovery mechanism.
      If an advertised name has the form <group><sep><name> it is deemed to
      belong to <group>. Note that the service's name is still the full
      string <group><sep><name>. The group concept is simply for discovery and
      to assist differentiation, eg, in a classroom group.
      
      :param group: the name of a group prefix
      :param separator: the separator character [/]
      :param exclude: an iterable of names to exclude (or None)
      
      :returns: a list of 2-tuples [(name, address), ...]