code: def descendants(self, cl=None, noduplicates=True):
          
          if not cl:
              cl = self
          if cl.children():
              bag = []
              for x in cl.children():
                  if x.uri != cl.uri:  # avoid circular relationships
                      bag += [x] + self.descendants(x, noduplicates)
                  else:
                      bag += [x]
              # finally:
              if noduplicates:
                  return remove_duplicates(bag)
              else:
                  return bag
          else:
              return []
docs: returns all descendants in the taxonomy