Im looking for a linear algebra textbook that meets two criterion:   The book should be proof-based.  The book should try and motivate most, if not most of the ideas, of the geometry of linear maps and matrix decompositions. For example, the permutation maps can be thought of as rotation maps because permutation matrices simply rotate the basis vectors. I’m looking for a book that explains all ideas and methods geometrically as well. A plus would also be that the book also foreshadows which properties can be generalized to a functional analytic setting.
I plan to self-study linear algebra this summer. I am sorta already familiar with vectors, vector spaces and subspaces and I am really interested in everything about matrices (diagonalization, ...), linear maps and their matrix representation and eigenvectors and eigenvalues. I am looking for a book that handles every of the aforementioned topics in details. I also want to build a solid basis of the mathematical way of thinking to get ready to an exciting abstract algebra next semester, so my main aim is to work on proofs for somehow hard problems. I got Lang's "Intro. to Linear Algebra" and it is too easy, superficial.  Can you advise me a good book for all of the above? Please take into consideration that it is for self-study, so that it' gotta work on its own. Thanks.
How do you generate all the permutations of a list in Python, independently of the type of elements in that list?  For example:  permutations([]) []  permutations([1]) [1]  permutations([1, 2]) [1, 2] [2, 1]  permutations([1, 2, 3]) [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1]