Bergantung pada seberapa tepat Anda perlu melakukannya, dan overhead yang bisa ditoleransi, Anda mungkin bisa lolos dengan sesuatu seperti
echo {\ ,{A..Z},{a..z},{0..9}}{\ ,{A..Z},{a..z},{0..9}}{\ ,{A..Z},{a..z},{0..9}}
Di mana Anda akan mengulangi {\, {A..Z}, {a..z}, {0..9}} bit untuk setiap set - yaitu jika Anda ingin setiap kata maksimum 10 karakter, Anda akan mengulanginya 10 kali.
Ada kekurangan dalam kode itu (karena tidak mengenali "tidak ada karakter" di awal, saya telah menggunakan "" sebagai pengganti. Ini akan membuat duplikat - yaitu "99" dan "99". Anda dapat singkirkan ini dengan mendorongnya melalui semacam | uniq filter (dan mungkin menggunakan tr juga), tetapi tergantung pada aplikasi Anda dan ukuran hasil akhir, Anda mungkin kesulitan dengan waktu yang diperlukan untuk membuat daftar.
Untuk membuat daftar yang akan menampilkan semua permutasi tanpa duplikat, tetapi dalam urutan berbeda dengan input asli Anda, Anda dapat menggunakan
for each in {\ ,{A..Z},{a..z},{0..9}}{\ ,{A..Z},{a..z},{0..9}}{\ ,{A..Z},{a..z},{0..9}} ; do echo $each; done | tr -d " " | sort -u