bpo-38530: Include builtins in NameError suggestions (GH-25460)

diff --git a/Python/suggestions.c b/Python/suggestions.c
index e422760..aa4870d 100644
--- a/Python/suggestions.c
+++ b/Python/suggestions.c
@@ -4,7 +4,7 @@
 #include "pycore_pyerrors.h"
 
 #define MAX_DISTANCE 3
-#define MAX_CANDIDATE_ITEMS 100
+#define MAX_CANDIDATE_ITEMS 160
 #define MAX_STRING_SIZE 25
 
 /* Calculate the Levenshtein distance between string1 and string2 */
@@ -171,6 +171,16 @@ offer_suggestions_for_name_error(PyNameErrorObject *exc) {
     }
     suggestions = calculate_suggestions(dir, name);
     Py_DECREF(dir);
+    if (suggestions != NULL) {
+        return suggestions;
+    }
+
+    dir = PySequence_List(frame->f_builtins);
+    if (dir == NULL) {
+        return NULL;
+    }
+    suggestions = calculate_suggestions(dir, name);
+    Py_DECREF(dir);
 
     return suggestions;
 }