<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_all_anonymous_mappings(self, struct1, struct2, niggli=True, include_dist=False):
 """ Performs an anonymous fitting, which allows distinct species in one structure to map to another. Returns a dictionary of species substitutions that are within tolerance Args: struct1 (Structure):
 1st structure struct2 (Structure):
 2nd structure niggli (bool):
 Find niggli cell in preprocessing include_dist (bool):
 Return the maximin distance with each mapping Returns: list of species mappings that map struct1 to struct2. """

        struct1, struct2 = self._process_species([struct1, struct2])
        struct1, struct2, fu, s1_supercell = self._preprocess(struct1, struct2,
                                                              niggli)

        matches = self._anonymous_match(struct1, struct2, fu, s1_supercell,
                                        break_on_match=not include_dist)
        if matches:
            if include_dist:
                return [(m[0], m[1][0]) for m in matches]
            else:
                return [m[0] for m in matches]