summaryrefslogtreecommitdiffstats
path: root/scripts/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/utils.py')
-rw-r--r--scripts/utils.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/scripts/utils.py b/scripts/utils.py
index bd975a2..f3e46c5 100644
--- a/scripts/utils.py
+++ b/scripts/utils.py
@@ -17,7 +17,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
import os
@@ -26,12 +27,13 @@ header = '''/* This file is generated by python scripts. Don't edit this file di
*/
'''
+
def expand_file(filename, get_table_content):
infile = open(filename, "r")
print(header)
for line in infile.readlines():
line = line.rstrip(os.linesep)
- if len(line) < 3 :
+ if len(line) < 3:
print(line)
continue
if line[0] == '@' and line[-1] == '@':
@@ -39,3 +41,25 @@ def expand_file(filename, get_table_content):
print(get_table_content(tablename))
else:
print(line)
+
+
+def shuffle_all(instr):
+ for output in shuffle_recur(instr):
+ if output == instr:
+ continue
+ yield output
+
+
+def shuffle_recur(instr):
+ if len(instr) == 1:
+ yield instr
+ else:
+ for i, ch in enumerate(instr):
+ recur = instr[:i] + instr[i+1:]
+ for s in shuffle_recur(recur):
+ yield ch + s
+
+
+if __name__ == "__main__":
+ for s in shuffle_all("abc"):
+ print(s)