<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def generate_sibling_distance(self):
 """Generate a dict containing the distance computed as difference in in number of partitions of each topic from under_loaded_brokers to over_loaded_brokers. Negative distance means that the destination broker has got less partitions of a certain topic than the source broker. returns: dict {dest: {source: {topic: distance}}} """

        sibling_distance = defaultdict(lambda: defaultdict(dict))
        topics = {p.topic for p in self.partitions}
        for source in self.brokers:
            for dest in self.brokers:
                if source != dest:
                    for topic in topics:
                        sibling_distance[dest][source][topic] = \
                            dest.count_partitions(topic) - \
                            source.count_partitions(topic)
        return sibling_distance