diff --git a/rpg/rule.py b/rpg/rule.py
index 6dcf802c9fd33a0e31dc6a3b6a820197af8627e0..ffd6328b9e15be6dbda4622b3fc9c50309499c53 100644
--- a/rpg/rule.py
+++ b/rpg/rule.py
@@ -672,7 +672,7 @@ def find_missing_rule(main_rule, dict_of_rule, depth=0):
     # Dict of missing rules. Key is depth.
     ret = defaultdict(list)
     # For each rule of the exception
-    for i in dict_of_rule:
+    for i in reversed(sorted(dict_of_rule)):
         # Backup the dict
         dict_of_rule_small = dict_of_rule.copy()
         # Remove current rule
@@ -751,7 +751,7 @@ def find_rechable_pos(main_rule, dict_of_rule):
         ret[len(dict_of_rule)] = main_rule
     else:
         # For each rules
-        for i in dict_of_rule:
+        for i in reversed(sorted(dict_of_rule)):
             # Create the corresponding rule
             tmp_rule = Rule(i, dict_of_rule[i], False, -1)
             # Get the corresponding rule in main_rule