Recherche de motif

Écrire une fonction recherche_motif qui prend en paramètre une chaîne de caractères motif non vide et une chaîne de caractères texte et qui renvoie la liste des positions de motif dans texte. Si motif n’apparaît pas, la fonction renvoie une liste vide.

Exemples

Python
>>> recherche_motif("ab", "")
[]
>>> recherche_motif("ab", "cdcdcdcd")
[]
>>> recherche_motif("ab", "abracadabra")
[0, 7]
>>> recherche_motif("ab", "abracadabraab")
[0, 7, 11]
Compléter le code ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein Ă©cran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013kg[: r);S/(.lo4y,6b=ac1x5+ujd3t28_Pw7evp-fh09mn]is050D0M0F0v0X0n0Y0f0w0n0v0Y0Y0u010F0X0O010406050Y0B0U0U0v0g0q040j0o0n0B0?0o0V050k0}0 11130{0O04051j1c1m0k1j0{0D0X0N0+0-0/0;0-0V0c0B0v0c0M0P0O0q0F0R1a0f0R0X0c0R0n1O0R0F0_050$0t0n0M1v0.0:011N1P1R1P0F1X1Z1V0F0g1k1J0+160Y0O0v0V0;0G011#1x010Q0(0M0V0v0U0M1V1`1|211%241Z27290_0a0f0J0g0o0O0o0Y0X190V0f0!1^0g0g0M0w2u1c2c0V1k0k1J2H1;1?1=1W0D2e1y0X0V262r1V1s1u0,1$2R2T0V0o2X1V0O2A1k2F2H2.0|1{2v2Z222%0g100n1V0v1M2A0Q0;030I0I0w2(0M1R2$0o0P0x3c0_0f0x1c0v2/2=0`2;2d2@1%2_2{2}2 0M3101333537392U3c0P1 040f0G3i3k1|3m2F2Q013r0v2|1k2~0R303234360!3B2%3D0E3f0E3J2E3l0{3N3p0;3Q3S053U3W3x3Y3A2S3C3d0p3f0p3+1d3-3n2?1w3q0o2`3R3t3V3v3X3z3!3}3$3d0z3f0z432.3.2=3O3=4d3_3y3Z384j3b3d0s3f0s4p453/483;4a3s3T3u3w4x3|3a3D0L3f0L4G3L4r3o4J3P4L4c4N4e4P3{4i4S3d0H3f0H4X2G4Z472!4$4b3?3^4f3`4h4z4.0P0T3f0T4?3M4s3:4{4M3@4O4g4y3#4B3c0S0_0x0S584^4t4%4}5f505h4A3D0x0x5m3h0k3j3,3L1n2,1c2X2K0D1?2P5b4y2W1t1k2+0M2-3l5F2G054y5W2d0X0D0;342F5y3t5(5*515i5-0f2i0M5:5w535A2H5E4I4`0b0_0!0Q5Y3G464t0Q0_2A0w0R0M0g6d0M0I0U0o0?65445G60220^040l66685b0V0_6k6m6v6q1%6s0r660f6w4#6y040F0M0y6N6C5a4#6s0h0e660{6o5Z3N5/015+2=3D3F5e6$4,523~3E205^5`4R6:6+5D3G0f6}6J4`6L0Y16180X1a6H6 220o0_0u776D0;6s0d0W6X6R5%5)6%0I5,3d3(4N6-5;5x7q6=285_7n5{6:7r3J6}6~7e3P0_0X7d6S4`7a047c6Z677H0U0X0_5o7R6Y2:6#7m6(1|3D407s7$7u53405@7y6@4-6:7*7E7F781%62040K1N1Z7L4!707J824_790_020n0F0i7Q2.6I7H0V0t0_2h7k876E0_6u7R7{3;0_6N6P0M8m3O6U863O7O0P8B6x8j048l8r7H6s8q7!7M2^6z6l0X6n8O836r0_6V7j8K4s7t7p0P4m7+7=6/4k8)7x298,5=4l1V6{7F8`8g8P3q0_0C8F4#7O8e3l8|8W1%7U7W8!8V2v8%6)4C5.7,7B8.4D7:8;7A6^9k8^3j8{7`7H7}7 25918404907R968n0;7O8a8c9z2^8H8J9c8z8p8y6x8R6B8#977f8Y9K1%0o0K0_1|0D9Z8t046A8T9R6T0_0d9/9A9C9O5b6s7i9D8s0193943L9E4t8u6O6Q9V9F017g9?8Q9Bac9!0_0Aaf9+7Ka89P040W6W7Y8y9e7(3d4U8+9o7?8.4U9m7z6.8?0Paw7_9t8`9~6L9^959~939*7Iae9}7H7OaiaU8}0;99045C4qas7,8(4:axaE7v0P4:aC8=a/a,aI8{9~7}9.aY9WaSaNa2aP7ba12Ga38G8k26ajaa9Qam9S9,8S8U5X8L8Yaqa(amat0V3D55a-7-6:55a=ay8-5jbsa_aJb76K0_72172Dbe920_0mbb6L0v0O0O269)bK4`8MbO85bV8X040h9bbj8$a*9f5k9ha?5|5lbxa.b:9r6|9taLbZ8fb37PaR6Lalb}aVahaRa#a%45bob+au3c5}6,9i9p5j5z8:aDbu8.cj5~b_bE616b0#0B0g1ba~a97173bJbn2:0k5#5H5V5J5S1c0F5McL2N2I0v1YcI0k5K6Y0!0$0(0Y04.