Нет, тогда получается, что мы хотим решить детскую задачу и выбираем для этого C++, который быстрее. Здесь ведь речь про обучение программированию, а не про решение конкретных задач. Ваш пример с C++ основан на том же самом алгоритме, что и на Питоне. Выигрыш в скорости очевиден, но ничего не доказывает, ведь мы и не стремились решить задачу за 2 миллисекунды. Наверняка алгоритм можно улучшить, но зачем? В принципе, задачу можно вообще решить методом грубой силы, то есть полным перебором, но он ничему новому здесь не научит. Суть в том, что данная задача красиво и просто решается комбинаторным путём. В Питоне для этого есть соответствующие методы, а в паскале их нет. В C++ есть всё, но я очень надеюсь, что хотя бы в школе его никогда изучать не будут.
Данный пример как раз и показывает, что Питон очень хорош для решения многих несложных, “школьных” задач и при этом не требует применения сложных конструкций и напряжения мыслей.
Важна ли здесь скорость вычислений? - Если речь идёт о миллисекундах и даже секундах, то не важна. Гораздо важнее простота алгоритма и его реализации.
Под детским совочком я понимаю низкоуровневое программирование, которым как раз и отличается C++. За счёт этого и достигается более высокая скорость работы. Если мы будем писать на ассемблере, то скорость ещё вырастет. Комбинаторный пример демонстрирует, что Питон значительно более высокоуровневый язык программирования, чем актуальный паскаль, поскольку он не заставляет писать низкоуровневые функции, чтобы генерировать перестановки. Это значит, что программу можно строить быстрее и большими кусками. А ссылки, указатели, ячейки памяти и прочая машинная мелочь - это и есть детский совочек, которым мы ковыряем элементарный код.
В Питоне позволительно подключать быстрые модули, написанные на языке С. Естественно, когда в этом есть необходимость. Зачем это нужно знать школьникам? Быстрее чем за 10 лет они всё равно не закончат… Да и вообще я имел в виду как раз алгоритмическое мышление, а не изучение того или иного языка программирования. Большинство выпускников школы забудут его через год. А правильное мышление останется с ними на всю жизнь. Научившись раз плавать или ездить на велосипеде, разучиться уже невозможно. То есть алгоритмическое мышление - это и есть цель обучения программированию, а язык программирования для этого нужно выбирать такой, чтобы не изучать его до последнего класса, когда уже не останется времени что-либо решать. Что легче и быстрее выучить? - Наверняка Питон или паскаль, но никак не С++.
Предложенные Вами примеры наверное подтвердят красоту Питона, но лично я не люблю такие задачи. Да и Питон я рассматриваю здесь только как учебный язык. Он для этого очень хорош… Впрочем, я уже об этом писал.